Voici mon XML:XML Expression XPath le retour des enfants avec des attributs similaires
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Job>
<InvoiceNumber>23456/1.3</InvoiceNumber>
<CompanyName>DummyJobOne</CompanyName>
<CompanyNumber>7641</CompanyNumber>
<Parts>
<Part>
<PartNumber>23456/1</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23456/2</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23456/3.2</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23459/1</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23459/6</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
</Parts>
<Job>
Je voudrais créer une expression XPath qui sélectionneront la « partie » où le « PartNumber » avant que le/correspond à la 'InvoiceNumber' avant le /. En d'autres termes, ne conservez que la partie contenant 23456 et enlevez celles de 23459. En d'autres termes, conservez uniquement la partie contenant 23456 et enlevez les 23459. Le résultat devrait ressembler à ceci:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Job>
<InvoiceNumber>23456/1.3</InvoiceNumber>
<CompanyName>DummyJobOne</CompanyName>
<CompanyNumber>7641</CompanyNumber>
<Parts>
<Part>
<PartNumber>23456/1</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23456/2</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
<Part>
<PartNumber>23456/3.2</PartNumber>
<SourceEstimate>41847</SourceEstimate>
</Part>
</Parts>
<Job>
Je m'excuse d'avance pour toute terminologie incorrecte ou générale. Merci!
Votre résultat ne peut être atteint via XPath seul. XPath est pour la sélection; vous avez besoin de transformation. Envisagez d'utiliser XSLT. – kjhughes
Si j'utilise l'expression: /Job/Parts/Part [NuméroFrame =/Job/InvoiceNumber]/PartNumber Je peux isoler les correspondances exactes avec le 'InvoiceNumber'. Est-ce qu'il n'y a aucun moyen de l'ignorer le/et tout après? – BobTucker
Bien sûr, vous pouvez utiliser 'substring-before()' pour vous aider à sélectionner les éléments 'Part' ciblés, mais avec XPath seul, vous ne pouvez pas réassembler les parties sélectionnées dans le contexte des éléments ancestraux montrés dans le résultat souhaité. – kjhughes