使用xslt将Input xml转换为Output xml

时间:2013-07-16 06:34:46

标签: xml xslt xslt-1.0

我正在获取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。

1 个答案:

答案 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>