0
входныхXSLT, чтобы удалить несколько узлов и получить заданный узел с его дочерних узлов
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body><jsonObject>
<User>
<No>123</No>
<Id>1</Id>
<MailCode>43</MailCode>
<Number>998</Number>
</User>
</jsonObject></soapenv:Body>
</soapenv:Envelope>
Ожидаемый вывод
<User xmlns="http://sample.org">
<No>123</No>
<Id>1</Id>
<MailCode>43</MailCode>
<Number>998</Number>
</User>
Текущий XSLT
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://sample.org">
<xsl:template match="jsonObject">
</xsl:template>
<xsl:template match="User">
<!--Define the namespace -->
<xsl:element name="{local-name()}" namespace="http://sample.org">
<!--apply to above selected node-->
<xsl:apply-templates select="node()|@*">
</xsl:apply-templates></xsl:element>
</xsl:template>
</xsl:stylesheet>
Но выходной ток,
<User xmlns="http://sample.org">
123
1
43
998
</User>
Что я здесь делаю неправильно? Также есть способ прямого извлечения содержимого узла <User>
вместо написания отдельных шаблонов для удаления узлов, таких как <jsonObject>
?
Выход вы утверждаете, не выход, полученный путем выполнения кода вы выложили. - Обратите внимание, что XML, который вы опубликовали, не имеет элементов 'JsonObject' или' Request', поэтому ваша таблица стилей ничего не делает, кроме применения встроенных правил шаблонов. –
Извините, что это была опечатка. Я добавил правильный XSLT сейчас. В основном для вывода мне нужен только узел и его дочерние элементы с новым пространством имен. –
user2894296
Ваш новый XSLT также не выводит заявленный результат. –