0

歴史を忘れることができることを願っていますが、次のことを信じてください。

  1. MSWord 2007 にすぐにアクセスできる人が何人かいます
  2. 私たちは、数か月かけて人から人へと渡され、新しいコンテンツを「追加」できる一般的な Word 文書を準備しようとしています。

以下の答えに関係なく - それがどんなに恐ろしい考えであっても、またはあなたがどんな良い考えを持っていても、上記は同じままです... 私はすでにこの道を進んでいます:P.

  1. 私の「考え」は、(Word 内で) XML スキーマをセットアップして、特定のコンテンツ領域 (アイテム番号、アイテムの説明、アイテムのステム、アイテムのオプション、アイテムの回答など) のコンテンツに「フラグを立てる」ことができるようにすることでした。
  2. 私は 6 時間弱で XML スキーマを独学しましたが、どうやら私はひどい教師のようです。私は XML スキーマ ファイルを持っており、それを Word にインポートしており、すべてのオンライン チュートリアルに従って領域にフラグを付けることができます.. .
  3. 「XML」ファイル(Wordから)に保存して、次のようにすることを望んでいました。
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

(データが入力された XML 構造を単語文書から保存したかったことを示すために、ランダムなサイトからそれを引き出しただけです)

その後、Python で解析するか、XML ファイルをベンダーに送信して、情報をデータベースにアップロードできることを期待していました (いいえ、データベースにアップロードするだけではありません。Word ドキュメントからXML をベンダーに送信します)。

問題: ファイルを MSWord 2007 から XML に保存するたびに、この恐ろしい XML があちこちに表示されます。XML タグが埋め込まれていることを期待して、それを解析できるかどうかを確認しました。それらを解析するのは膨大な時間の無駄です。

最後に: XML タグに単語を自動的に入力するにはどうすればよいですか (また、自動的に、誰かが「テキストを選択する」、「XML を割り当てる」必要があることを理解します... XML への「保存」について詳しく説明します)。私が開発したスキーマ (または、スキーマなしでサンプルの XML ツリーを作成することはできますか?) を作成し、アップロード/解析の準備ができているコンテンツをエクスポートしますか?

私の短い小説を読んでくれてありがとう :P (私が十分に理解できたことを願っています!)

-J

4

1 に答える 1

1

データがあなたが提供した例と同じくらい均一である場合 (つまり、固定数のフィールドを持つ要素のみ)、Word 文書に、、、などnoteの列を持つ 1 つの大きなテーブルを用意することができる場合があります。次に、この質問で説明されている方法のいずれかを使用して Python で解析し、カスタム XML を出力できます。ファイルは既に XML であるため、作業が簡単になる場合とそうでない場合があります。tofromheadingbody.docx

データがより複雑になる場合は、Word のスタイルを使用してテキストを正しいタグにマップすることも考えられます。各タグのカスタム スタイルを作成すると、ユーザーがすばやく簡単にクリックできるようになります (色やフォントが異なる場合もあります)。次に、ドキュメントを解析するときに、適用された段落スタイルに基づいてすべてをフィルタリングできます。でも、このルートは辛いと思います。

別のオプションは、ドキュメントをYAMLのような構造化された構文で記述することです。これは、手動で読み書きするのに十分簡単で、ファイルをプレーンテキストとして保存するだけで解析できます。

# plaintext_export.txt
------------------
Notes:
- From: Somebody
  To: Somebody-else
  Heading: This is a heading
  Message: > 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. 

- From: Another guy
  To: Me
  Heading: Huh?
  Message: >
    Some other message content.

解析は次のように簡単です。

>>> import yaml
>>> from pprint import pprint
>>> with open("plaintext_export.txt", 'r') as f:
...     data = yaml.load(f)
...
>>> pprint(data)
{'Notes': [{'From': 'Somebody',
            'Heading': 'This is a heading',
            'Message': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit
, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \n',
            'To': 'Somebody-else'},
           {'From': 'Another guy',
            'Heading': 'Huh?',
            'Message': 'Some other message content.\n',
            'To': 'Me'}]}
于 2011-03-28T21:56:32.630 に答える