Ответ 1
Попробуйте добавить атрибут omit-xml-declaration="yes"
к тегу xsl:output
.
Затем он должен выглядеть следующим образом:
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
Привет, я создаю xml, добавив xsl в xml-вход. Мне нужен выход без этой части "<?xml version="1.0" encoding="utf-16"?>"
вход - XML
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateResponse xmlns="http://jerseytelecom.com/">
<CreateResult>
<ISD_XMLGateway>
<Entity>RIM_BPS</Entity>
</ISD_XMLGateway>
</CreateResult>
</CreateResponse>
</soap:Body>
</soap:Envelope>
my xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:JT="http://jerseytelecom.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="JT">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="Entity">
<xsl:value-of select="soap:Envelope/soap:Body/JT:CreateResponse/JT:CreateResult/JT:ISD_XMLGateway/JT:Entity"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Текущий выход
<?xml version="1.0" encoding="utf-16"?>
<Entity>RIM_BPS</Entity>
Ожидаемый результат
<Entity>RIM_BPS</Entity>
Попробуйте добавить атрибут omit-xml-declaration="yes"
к тегу xsl:output
.
Затем он должен выглядеть следующим образом:
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
Поместите это в свой xslt
<xsl:output method="xml" omit-xml-declaration="yes"/>
или
при экстремальном нажатии
<xsl:output method="text" />
должен решить симптом...
Последний может иметь значительные последствия, хотя в зависимости от процессора.
Используйте этот XSLT для удаления кодировки = "UTF-8" из XML-документа с помощью XSLT. В разделе Cdaata Вы можете добавить кодировку как свою волю. Приветствия:)
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><![CDATA[<?xml version="1.0"?>]]></xsl:text>
<xsl:copy-of select="node()"/>
</xsl:template>
</xsl:stylesheet>
Это полное преобразование:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:JT="http://jerseytelecom.com/" exclude-result-prefixes="soap JT">
<xsl:output omit-xml-declaration="yes" indent="yes"
encoding="utf-8"/>
<xsl:template match="/">
<Entity>
<xsl:value-of select=
"soap:Envelope/soap:Body/JT:CreateResponse
/JT:CreateResult/JT:ISD_XMLGateway/JT:Entity"/>
</Entity>
</xsl:template>
</xsl:stylesheet>
при применении к предоставленному XML-документу:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateResponse xmlns="http://jerseytelecom.com/">
<CreateResult>
<ISD_XMLGateway>
<Entity>RIM_BPS</Entity>
</ISD_XMLGateway>
</CreateResult>
</CreateResponse>
</soap:Body>
</soap:Envelope>
создает желаемый, правильный результат:
<Entity>RIM_BPS</Entity>