Извиняюсь, если это не очень хорошо написано, но это мое первое знакомство с XSLT.
Ниже приведен пример структуры 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>john.henry@sampledata.com</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>thomas.henry@sampledata.com</EmailAddress>
<City>Bristol</City>
<PostalCode>BS4Y 2WT</PostalCode>
</ContactInformation>
</Customer>
</Billing>
</ProcessedOrder>
// Желаемый вывод
<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>thomas.henry@sampledata.com</EmailAddress>
<City>Bristol</City>
<PostalCode>BS4Y 2WT</PostalCode>
</ContactInformation>
</Customer>
</Delivery>
</Order>
Я пытаюсь сделать несколько вещей во время трансформации.
- Извлечение
<Order>
из XML
- Исключить
<Customer>
из <Delivery>
- Вставьте
<Customer>
из <Billing>
, где был <Delivery><Customer>
.
Я предполагаю, что могу извлечь Орден, используя следующее ..
<?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>
Как только я начинаю пытаться исключить Клиента, я полностью теряюсь ..
Любая помощь будет принята с благодарностью.
Большое спасибо,
М.