Word 2010 VSTO アドインを実装して、ユーザーが Microsoft Word でリッチ テキスト コンテンツを編集できるようにしています。アドインは、ユーザーが作成したコンテンツを WordprocessingML マークアップとしてデータベースに保存します。1 つの Word ドキュメントで複数のデータベース アイテムを編集する機能を提供する必要があります。ユーザーがドキュメントを保存すると、アドインは各アイテムの XML をデータベースにアップロードします。
私が遭遇した問題は、どの XML フラグメントがどの項目に属しているかを識別する方法です。理想的には、HTML の要素に似たものを実現したいと考えていdiv
ます。この要素を使用して、各アイテムをラップし、それぞれにカスタム識別子を追加できますdiv
。次に、ドキュメントが保存された後、各 div を取得して内部 XML を抽出できます。
残念ながら、私が現在見つけた最善の解決策は、ブックマークを使用してドキュメント内の各項目の開始と終了をマークすることです。ただし、これを実装するのは難しいようです。なぜなら、各アイテムのドキュメントを解析し、開始と終了のブックマークを見つけ、すべての兄弟 XML ノードを抽出し、すべての XML 要素が適切に閉じられていることを確認する必要があるからです (開始と終了から)終了ブックマークは、XML ドキュメントのさまざまなレベルにある可能性があります)。これは非常に複雑で、エラーが発生しやすいようです。
誰かが同様の問題を抱えていて、それに対するより良い解決策を知っているかどうか疑問に思っていましたか?