1

LotusNotesデータベースのコンテンツをSharePointに移行します。データベース全体がXMLファイルにエクスポートされ(この要件は変更できません)、これらのXMLファイルを解析してデータをSharePointに挿入する必要があります。

私をつまずかせるのは、リッチテキストを含む要素です。XML要素には、 http: //publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic =%で説明されているように、DXLを使用してLotusNotesのフィールドで使用される正確なリッチテキスト形式のXML表現が含まれています。2Fcom.ibm.designer.domino.main.doc%2FH_PARAGRAPH_DEFINITIONS_ELEMENT_XML.html

テキストの実際のフォーマットを維持する必要はありませんが(プレーンテキストを取得するのと同じくらい簡単でない限り)、リッチテキストを含むXML要素の値を(LinqToXMLを使用して)単純に抽出すると、プレーンテキストが得られます許容できない改行なし。さらに、埋め込まれた画像は、取得したテキストにbase64でエンコードされた文字列として表示されます(XMLに埋め込まれます)。

RTFファイルに挿入できる適切なRTF形式として、または正しい改行を含み、埋め込まれた画像を含まないプレーンテキストとして、XML要素からテキストを抽出する方法について誰かが私にガイダンスを提供できますか?

4

3 に答える 3

1

明らかに、扱う XML は DXL です。より洗練された方法は、XSL 変換を使用して HTML に変換することです。PD4ML ツールに付属している必要な XSLT スタイルシート。HTML 形式から、ドキュメントを PDF、RTF、または PD4ML を使用した画像に変換できます (または、別のツールを使用して別の形式に変換できます)。

于 2013-11-20T01:24:35.187 に答える
0

(今のところ) 次の式で正規表現を使用して、すべての XML タグと不要な埋め込み要素のリッチテキスト xml 要素を取り除いただけです。

        //Removes all attachmentref elements
        newString = new Regex(@"(<attachmentref(.|\n)*</attachmentref>)").Replace(newString, "");
        //Removes all formula elements
        newString = new Regex(@"(<formula(.|\n)*</formula>)").Replace(newString, "");
        //Removes all xml tags (<par>, <pardef>, <table> etc). Be aware that this also removes any content in the table
        newString = new Regex("<(.)*/>").Replace(newString, "");
        newString = new Regex("<(.)*>").Replace(newString, "");
        newString = new Regex("</(.)*>").Replace(newString, ""); 

        //Trims the text to tidy up the many \n, \r and white-spaces introduced by removing the xml tags. 
        newString = new Regex(@"\r").Replace(newString, "\n");
        newString = new Regex(@"[ \f\r\t\v]+\n").Replace(newString, "\n");
        newString = new Regex(@"\n{2,}").Replace(newString, "\n");

        //makes < and > appear correctly in the text.
        newString = newString.Replace("&lt;", "<").Replace("&gt;", ">");

きれいではありませんが、少なくともテキストは読みやすく、改行の感覚は保持されています。

于 2012-12-21T08:29:46.313 に答える
0

リッチ テキスト アイテムのコンテンツを、リッチ テキスト アイテムでサポートされている他の形式である HTML/MIME に変換できます。

または、HTTP URL でリッチ テキスト コンテンツを表示し、エクスポート XML でそれを参照する XPage またはフォームを作成することもできます。

  • パヌ
于 2012-12-18T18:16:15.093 に答える