2009-06-19 9 views
1

J'ai 2 fichiers xml. Je voudrais wite xsl programme qui élimine (et crée un nouveau xml) tous les nœuds de SearchApp_MA_Request de SearchApp_LA_Request lorsque Field4 et field5 et field6 sont identiques dans les deux fichiers.Est-ce possible en utilisant 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

Vous pensez peut-être que vous êtes clair, mais je n'ai vraiment aucune idée de ce que vous demandez. (Pas par manque d'expérience avec XML et XSLT, faites attention.) Veuillez reformuler votre question et dites-nous exactement ce que vous essayez d'accomplir. – bendin

+0

* En utilisant ces 2 fichiers XML, je dois éliminer les doublons. le système considère dupliquer lorsque field4, field5 et field6 sont identiques. – user114086

Répondre

2

Oui,

Je googlé votre question (en utilisant des mots-clés de fusion xml xslt) et a trouvé cette ressource qui semble frapper votre spot question sur: «fusionner deux fichiers de http://www.dpawson.co.uk/xsl/sect2/merge.html#d7584e19

[de facimilie de lien ci-dessus]

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]"/> 

Les solutions utilisent la fonction xslt document() qui peut accéder aux noeuds dans un document XML. En savoir plus sur ce que vous pouvez trouver sur w3school: http://www.w3schools.com/Xsl/func_document.asp

0

Je ne sais pas si sur étagère parseurs XSLT fera ce que vous proposez ...

Vous souhaiterez peut-être lire l'un des documents dans un arbre DOM, puis lire dans l'autre, en ajoutant chacun des enfants.

Vous pouvez alors soit manipuler le DOM directement en mémoire, soit l'écrire dans un document, puis effectuer la transformation XSL pour obtenir les valeurs uniques ...

C'est comme ça que je l'aborderais au moins.

0

Selon ce que je comprends, vous devez fusionner 2 fichiers XML en utilisant XSLT. Regardez la fonction "document()" dans XSLT.

Bravo

Questions connexes