Lire fichier XML à l'intérieur de XSLT et en l'utilisant pour construire de nouveaux XML

Je veux lire un fichier XML à l'intérieur de XSLT et vérifier ses nœuds. s'ils correspondent à la valeur du nœud XML que je suis en appliquant la transformation, puis saisir la valeur du nœud XML et l'utiliser pour construire une nouvelle structure XML.

Voici un exemple pour illustrer mon problème. Je pense que beaucoup de gens peuvent utiliser cette question pour référence d'obtenir une fonctionnalité similaire.

Referenced.xml

<xml>
  <root>
    <Id id = "1">
      <fields>
        <field>
          <name> Name1 </name>
          <value> Val1 </value>
        </field>
        <field>
          <name> Name2 </name>
          <value> Val2 </value>
        </field>
      </fields> 
    </Id>
    <Id id = "2">
    ...
    </Id>
  </root>
</xml>

Xml.xml

<XML>
  <Fields>
   <Id id = "1">
    <F1> Value1 </F1>
    <F2> Value2 </F2>
    <F1> Value3 </F1>
    <F4> Value4 </F4>
 </Id>
  </Fields>
</XML>

Maintenant, je veux créer une transformation qui va parcourir le fichier XML (Referenced.xml) et vérifier si l'Id à l'intérieur du xml du match, puis, à l'intérieur de l'identifiant, du Name1 = F1 et partout où il est, ensuite, chercher de la "valeur" pour que " nom " et de créer une structure XML comme

<outputXml>
  <Field id="Val1">
    <val> Value1 </val>
  </Field>
  <Field id="Val2">
    <val> Value2 </val>
  </Field> ... and so on
</outputXml>

Je sais que je dois utiliser document(), mais je ne suis pas sûr de savoir comment avez-vous parcourir la Referenced.xml à l'intérieur de xsl et si, d'autre pour obtenir la fonctionnalité nécessaire ?

  • Votre XML est mal formé, <id = 1> n'est pas valide. Veuillez fournir XML valide.
  • Ajouté. Oublié d'ajouter des guillemets. Vérifier de nouveau
  • Désolé, c'est encore mal formé. Vous devez spécifier un nom d'attribut, par exemple <ref id="1">
  • Désolé, j'ai édité de nouveau pour être valide.
  • Quelqu'un juste édité revenue de mon changement. Comment faire u prévenir qu'ici ? Si je revenue à être valide encore.
InformationsquelleAutor user2334314 | 2013-05-01