У меня есть XML, показанный ниже, я был бы очень признателен, если бы кто-нибудь показал мне, как сначала выбрать элемент Parcel, затем элемент DeliveryAddress, а затем элемент Consignment, эти элементы повторяются в документе XML, как показано.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="mr23030b1.xsl"?>
<MR23030B>
<Header RECORD_TYPE="HD" METER_NO="10800" FILE_DATE="23/06/2011">
<SenderAddress RECORD_TYPE="AS" COUNTRY_CODE="GB" BRANCH_PREFIX="" BRANCH_CODE=""/>
<Consignment RECORD_TYPE="CO" ACNT_NO="044375530" COLL_PT="0001"/>
<DeliveryAddress RECORD_TYPE="AD" COUNTRY_CODE="GB" BRANCH_CODE="7255"/>
<Parcel RECORD_TYPE="PA" MANIFEST_NO="0000000000" PARCEL_NO="JD0002210800004322"/>
<Consignment RECORD_TYPE="CO" ACNT_NO="044375531" CONT_NO="9360964" />
<DeliveryAddress RECORD_TYPE="AD" COUNTRY_CODE="GB" BRANCH_CODE="7256"/>
<Parcel RECORD_TYPE="PA" MANIFEST_NO="0000000000" PARCEL_NO="JD0002210800004323"/>
<Consignment RECORD_TYPE="CO" ACNT_NO="044375532" CONT_NO="9360964" />
<DeliveryAddress RECORD_TYPE="AD" COUNTRY_CODE="GB" BRANCH_CODE="7257"/>
<Parcel RECORD_TYPE="PA" MANIFEST_NO="0000000000" PARCEL_NO="JD0002210800004324"/>
<TrailerRecord RECORD_TYPE="TR" NO_RECORDS="00000425"/>
</MR23030B>
Таблица стилей XSL, которую я использую:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="MR23030B">
xsl:apply-templates/>
</xsl:template>
<xsl:output method='text'/>
<xsl:variable name='newline'>
<xsl:text> </xsl:text>
</xsl:variable>
<xsl:template match="MR23030B">
<xsl:apply-templates select="/*/Parcel,/*/DeliveryAddress,/*/Consignment"/>
</xsl:template>
<xsl:template match="Parcel">
<xsl:value-of select="@PARCEL_NO"/>
<xsl:value-of select="$newline"/>
</xsl:template>
<xsl:template match="DeliveryAddress">
<xsl:value-of select="@BRANCH_CODE"/>
<xsl:value-of select="$newline"/>
</xsl:template>
<xsl:template match="Consignment">
<xsl:value-of select="@ACNT_NO"/>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
</xsl:template>
Я пробовал приведенную выше таблицу стилей xsl, но я все еще получаю данные, поступающие в неправильном порядке, то есть сначала читается элемент Отправка, а затем DeliveryAddress и, наконец, Посылка. т.е. 044375530 7255 JD0002210800004322 044375531 7256 JD0002210800004323 044375532 7257 JD0002210800004324
Как вы знаете, сначала я хочу указать элемент "Посылка", а затем адрес доставки и элемент "Отправка".
Буду очень признателен, если кто-нибудь скажет мне, что не так с таблицей стилей.