Я хочу получить значение дочернего узла в цикле "foreach".
это оригинальный конверт xml:
<ns2:pointOfSale xmlns:ns2="" mode="UPDATE" timestamp="2018-10-08T16:18:57.611+02:00">
<ns2:id type="AMP">7451</ns2:id>
<ns2:info>
<ns2:type>AMP</ns2:type>
<ns2:name>PASSE</ns2:name>
<ns2:address>
<ns2:streetName>JEZUSSTRAAT</ns2:streetName>
<ns2:streetNumber>15</ns2:streetNumber>
<ns2:postalCode>20</ns2:postalCode>
<ns2:city>ANTWERPEN</ns2:city>
<ns2:countryCode>BE</ns2:countryCode>
</ns2:address>
<ns2:phoneNumber>0323</ns2:phoneNumber>
<ns2:faxNumber>0323</ns2:faxNumber>
</ns2:info>
<ns2:deliveryInfo>
<ns2:info>
<ns2:name>HANDLING PLACE</ns2:name>
<ns2:value>F3</ns2:value>
</ns2:info>
<ns2:info>
<ns2:name>BOX NUMBER</ns2:name>
<ns2:value>A</ns2:value>
</ns2:info>
<ns2:info>
<ns2:name>POS CLASSIFICATION</ns2:name>
<ns2:value>0</ns2:value>
</ns2:info>
<ns2:info>
<ns2:name>AMP ZONE</ns2:name>
<ns2:value>1</ns2:value>
</ns2:info>
</ns2:deliveryInfo>
</ns2:pointOfSale>
это мой код xslt:
<?xml version="1.1" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
exclude-result-prefixes="xs xd"
version="2.0">
<xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="no" indent="no" />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:element name="clients">
<xsl:attribute name="xsi:noNamespaceSchemaLocation">setClients.xsd</xsl:attribute>
<xsl:attribute name="encryptedData">N</xsl:attribute>
<xsl:for-each select="/body/salesItem/contentSet/inlineXML/group/pointOfSale">
<xsl:if test="@mode='UPDATE'">
<xsl:element name="client">
<xsl:attribute name="cstclavep">
<xsl:value-of select="id"/>
</xsl:attribute>
<xsl:element name="address">
<xsl:element name="STREETNAME"><xsl:value-of select="/info/address[streetName]"/></xsl:element>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="@mode='DELETE'">
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:template>
<xsl:template match="*" mode="content">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*" />
<xsl:apply-templates mode="content"/>
</xsl:element>
</xsl:template>
<xsl:template match="text()" mode="content">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
это результат на данный момент:
<?xml version="1.0" encoding="utf-8"?><clients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="setClients.xsd" encryptedData="N"><client cstclavep="7451"><address><STREETNAME><streetName>MARKT</streetName><streetName>CHAUSSEE DU PONT DU SART</streetName><streetName>TORHOUTSEBAAN</streetName><streetName>KAAI</streetName><streetName>JEZUSSTRAAT</streetName><streetName>JEZUSSTRAAT</streetName></STREETNAME></address></client><client cstclavep="7451"><address><STREETNAME><streetName>MARKT</streetName><streetName>CHAUSSEE DU PONT DU SART</streetName><streetName>TORHOUTSEBAAN</streetName><streetName>KAAI</streetName><streetName>JEZUSSTRAAT</streetName><streetName>JEZUSSTRAAT</streetName></STREETNAME></address></client></clients>
это то, что мне нужно иметь
<?xml version="1.0" encoding="utf-8"?><clients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="setClients.xsd" encryptedData="N">
<client cstclavep="7451"><address><STREETNAME>MARKT</STREETNAME></address></client>
<client cstclavep="7451"><address><STREETNAME>JEZUSTRAAT</STREETNAME></address></client>
</clients>
На самом деле, все значения адресов принимаются одним клиентом.Я хочу передать текущее значение адреса клиенту.
Можете ли вы дать решение, пожалуйста?
Спасибо