1

以下で説明するように、段落 ID に基づいて複数の XML ドキュメントをマージする必要があります。基本的に、これは文書同期の状況であり、マスター文書に追加された段落を二次文書から追加する必要があります。マスターから削除された段落は、セカンダリ ドキュメントから削除する必要があります。最後に、マスター ドキュメントの段落ノードの一部の属性 (「フォント」など) をセカンダリ ドキュメントに複製する必要がありますが、一部は保持する必要があります (「作成者」など)。私は、c# .net でかなり力ずくの醜いコードを書きました。それは半分は機能します (キープ/更新ロジックを処理する属性をコーディングしていません)。新しい「ラッシュ」プロジェクトに投入された XSLT の「処女」です...誰かが少なくとも 2 つのドキュメントをマージする方法を教えてくれませんか (i. e. マスターからセカンダリに段落を追加しますか?)

例えば

master.xml:

<paragraphs>
<paragraph id="intro" font="bold" author="JS">
   <sentences>
         <sentence>Bla bla bla bla</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</Paragraph>
<paragraph id="main1" font="bold" author="FTG">
   <sentences>
         <sentence>any text here</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</paragraph>
<paragraph id="main2" font="bold" author="FTG">
   <sentences>
         <sentence>Added to Master Doc</sentence>
   </sentence> 
</Paragraph>

およびSecondary.Xml

<paragraphs>
<paragraph id="intro" font="normal" author="ZZ">
   <sentences>
         <sentence>Bla bla bla bla</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</paragraph>
<paragraph id="main1" font="normal" author="XYZ">
   <sentences>
         <sentence>main1 has been edited in secondary doc but needs to remain unchanged</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</paragraph>
<paragraph id="conclusion" font="bold" author="FTG">
   <sentences>
         <sentence>In conclusion.....bla.../sentence>
   </sentence> 
</paragraph>
</paragraphs>

セカンダリ ドキュメントから結論段落を削除し、main2 ドキュメントをマスターからセカンダリに追加し、一致する段落のマスターからセカンダリにフォント属性を適用することによってマージする必要がありますが、一致する段落では作成者属性を変更しません。後半部分 (属性の複製/保存は非常に小さな問題です)。

<paragraphs>
<paragraph id="intro" font="bold" author="ZZ">
   <sentences>
         <sentence>Bla bla bla bla</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</paragraph>
<paragraph id="main1" font="normal" author="FTG">
   <sentences>
         <sentence>main1 has been edited in secondary doc but meeds to remain unchanged</sentence>
         <sentence>More Bla bla bla bla</sentence>
   </sentence> 
</Paragraph>
<paragraph id="main2" font="bold" author="FTG">
   <sentences>
         <sentence>Added to Master Doc</sentence>
   </sentence> 
</Paragraph>
</paragraphs>
4

0 に答える 0