我正在获取XML输入文件,应该使用XSLT进行转换。 现在我因为XML文件中的命名空间而面临着转换中的问题。
包含此命名空间的XML文件未进行转换
xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2" xmlns:n1="http://b2b.ibm.com/schema/B2B_CDM_Incident/R2_2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
但是当我们从XML文件中删除xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"
时,它会被转换。
我在XSLT中也使用了相同的命名空间,但它没有转换。
请帮我转换XML文件而不更改XML文件。我想改变XSLT。
答案 0 :(得分:1)
您必须在XSLT中为您指定的元素添加前缀,并使用相同的命名空间。例如:
输入XML:
<input xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
<content>testing</content>
</input>
你的XLST应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:t="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
<xsl:template match="/">
<output>
<xsl:value-of select="/t:input/t:content"/>
</output>
</xsl:template>
</xsl:stylesheet>