2009-06-19 6 views
1

私は2つのXMLファイルを持っています。私は、Field4とfield5とfield6が両方のファイルで同じ場合、SearchApp_LA_RequestからSearchApp_MA_Requestのすべてのノードを削除し(新しいxmlを作成する)wite xslプログラム を使用したいと思います。これはXSLTを使用して可能ですか?

SearchApp_LA_Request.xml

<Request> 
    <Rows> 
     <Row1> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row1> 
     <Row2> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row2> 
     <Row3> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row3> 
     <Row4> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row4> 
    </Rows> 
</Request> 

SearchApp_MA_Request.xml

<Request> 
    <Rows> 
     <Row1> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row1> 
     <Row2> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row2> 
     <Row3> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row3> 
     <Row4> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row4> 
    </Rows> 
</Request> 
+0

は、あなたが明確にされていると思うかもしれないが、本当に私はあなたが求めているものは考えています。 (XMLとXSLTの経験が不足しているわけではありません)あなたの質問を言い換えて、あなたが達成しようとしていることを正確に教えてください。 – bendin

+0

*これらの2つのxmlファイルを使用して、重複を排除する必要があります。 field4、field5、およびfield6が同じ場合、システムは複製を考慮します。 – user114086

答えて

2

はい、

私は(キーワードは、XML、XSLTをマージ使用して)あなたの質問をGoogleで検索し、上の質問のスポットをヒットすると思われる、このリソースが見つかりました:[上記のリンクからfacimilie] http://www.dpawson.co.uk/xsl/sect2/merge.html#d7584e19

「2つのファイルのマージ」を

Michael Kay 

> I have two documents, file A and file B. I want to join them 
> on the id of 
> the first, but only if a matching id is in the 2nd. How do I do this? 
> 
> File A    File B    Desired Output 
> <id> A </id>  <id> A </id>   <id> A </id> 
> <id> B </id>  <id> C </id>   <id> D </id> 
> <id> D </id>  <id> D </id> 
> 

<xsl:copy-of select="document('a.xml')//id[.=document('b.xml')//id]"/> 

解決策は、xmlドキュメントのノードにアクセスできるxslt関数document()を使用します。あなたはw3schoolで見つけることができるより多くの情報:http://www.w3schools.com/Xsl/func_document.asp

0

任意の既製XSLTパーサは、あなたが示唆している何をするかどうか私にはわからない...

ドキュメントの1つをDOMツリーに読み込んでから、別のドキュメントを読み込み、それぞれの子を追加することができます。

DOMをメモリ内で直接操作することもできますし、それを1つのドキュメントに書き込んだり、XSL変換を行って固有の値を取得することもできます。

これは私が少なくともそれにアプローチする方法です。

0

私が理解することによると、XSLTを使って2つのXMLファイルをマージする必要があります。

XSLTの "document()"関数を見てください。

乾杯

関連する問題