Во-первых, я предоставлю код, который у меня уже есть. XML:Извлечение строки XSL из ответа SOAP
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getUserDataResponse xmlns="http://wtp">
<getUserDataReturn>Matt</getUserDataReturn>
<getUserDataReturn>NY</getUserDataReturn>
</getUserDataResponse>
</soapenv:Body>
</soapenv:Envelope>
Это XSLT У меня есть:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope">
<xsl:output method="xml" omit-xml-declaration="no" encoding="utf-8" indent="yes" />
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getUserDataResponse xmlns="http://wtp">
<xsl:for-each select="soapenv:Envelope/soapenv:Body/soapenv:getUserDataResponse/soapenv:getUserDataReturn">
<xsl:value-of select="." />
</xsl:for-each>
</getUserDataResponse>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
Что я пытаюсь добиться, чтобы извлечь только первый элемент массива, в этом случае строка «Мэтта, а затем положить его, как это было просто регулярный ответ, чтобы отправить его дальше на другую конечную точку ». Я понятия не имею, что может быть неправильным.
Выход я хочу:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getUserDataResponse xmlns="http://wtp">
<getUserDataReturn>Matt</getUserDataReturn>
</getUserDataResponse>
</soapenv:Body>
</soapenv:Envelope>
Выход я получаю сейчас просто шаблон мыло без данных.
Был бы очень признателен, если кто-то может помочь :)
Ура!