Excuses si ce n'est pas bien écrit mais c'est ma première exposition à XSLT.XSL Transformation - Exclure certains enfants
Voici un exemple de structure xml.
<ProcessedOrder>
<ProcessDetail>
<Detail1>Some Sample Data</Detail1>
</ProcessDetail>
<Management>
<Employee Id="EM156896">
<Name>James Davies</Name>
</Employee>
</Management>
<Order Id="IR1245486">
<Details>
<Date>01-02-2011</Date>
<Name>XSLT : The Complete Beginners Guide</Name>
<Description>The Complete Beginners Guide to XSL Transformations</Description>
</Details>
<Delivery>
<Customer Id="CN005687">
<Name>John Henry</Name>
<ContactInformation>
<AddressLine1>55 John Street</AddressLine1>
<Country _Id="GBR">United Kingdom</Country>
<Phone>1234-123456</Phone>
<Fax>1234-5544-2250</Fax>
<EmailAddress>[email protected]</EmailAddress>
<City>London</City>
<PostalCode>AW7T 3XS</PostalCode>
</ContactInformation>
</Customer>
</Delivery>
</Order>
<Billing>
<Customer Id="CN005858">
<Name>Thomas Henry</Name>
<ContactInformation>
<AddressLine1>66 Thomas Street</AddressLine1>
<Country _Id="GBR">United Kingdom</Country>
<Phone>1234-545464</Phone>
<Fax>2233-8989-1234</Fax>
<EmailAddress>[email protected]</EmailAddress>
<City>Bristol</City>
<PostalCode>BS4Y 2WT</PostalCode>
</ContactInformation>
</Customer>
</Billing>
</ProcessedOrder>
// Production Désirée
<Order Id="IR1245486">
<Details>
<Date>01-02-2011</Date>
<Name>XSLT : The Complete Beginners Guide</Name>
<Description>The Complete Beginners Guide to XSL Transformations</Description>
</Details>
<Delivery>
<Customer Id="CN005858">
<Name>Thomas Henry</Name>
<ContactInformation>
<AddressLine1>66 Thomas Street</AddressLine1>
<Country _Id="GBR">United Kingdom</Country>
<Phone>1234-545464</Phone>
<Fax>2233-8989-1234</Fax>
<EmailAddress>[email protected]</EmailAddress>
<City>Bristol</City>
<PostalCode>BS4Y 2WT</PostalCode>
</ContactInformation>
</Customer>
</Delivery>
</Order>
Je suis en train de faire un certain nombre de choses au cours d'une transformation.
- Extrait du
<Order>
du XML - Exclure les
<Customer>
du<Delivery>
- Insérez le
<Customer>
du<Billing>
où le<Delivery><Customer>
était.
Je suppose que je peux extraire l'Ordre en utilisant les éléments suivants ..
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="//Order"/>
</xsl:template>
<xsl:template match="Order">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
Une fois que je commence à essayer d'exclure le Client je suis complètement perdu ..
Toute aide serait très appréciée.
Merci beaucoup,
M.
Martin, Merci un million pour revenir à moi à ce sujet. Je vais parcourir votre solution proposée. À première vue, cela semble plus logique qu'une partie de la solution que j'ai essayé de mettre en œuvre moi-même. – user617850
C'est excellent cela fonctionne parfaitement ... Est-il possible de vérifier si la Commande/Livraison/Client existe ou si le ProcessedOrder/Facturation/Client existe? – user617850
De telles vérifications sont facilement effectuées avec, par ex. ' ..' mais je ne suis pas sûr de l'endroit où vous voulez mettre cette vérification. Vous devez expliquer plus en détail ce que vous voulez réaliser en plus du problème original. –