【发布时间】:2012-03-29 14:50:32
【问题描述】:
我正在通过 XSLT 处理 XML 到 XML 的转换。我想删除输出 xml 中的名称空间。为此,我使用了排除结果前缀选项,但在输出中我仍然看到命名空间。
源 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<aaa>
hello
</aaa>
XSLT 编写:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:simple="aaaa" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" exclude-result-prefixes="msxsl simple wireframe widget tcdl tcm xlink" xmlns:wireframe="bbb" xmlns:widget="ccc" xmlns:tcdl="tcdl">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<wireframe:wireframe>
<wireframe:si>
<widget:ah>
<xsl:value-of select="aaa" />
</widget:ah>
</wireframe:si>
</wireframe:wireframe>
</xsl:template>
</xsl:stylesheet>
产生的输出:
<?xml version="1.0" encoding="utf-8"?>
<wireframe:wireframe xmlns:wireframe="aaaa">
<wireframe:si>
<widget:ah xmlns:widget="bbb">
hello
</widget:ah>
</wireframe:si>
</wireframe:wireframe>
预期输出:
<?xml version="1.0" encoding="utf-8"?>
<wireframe:wireframe>
<wireframe:si>
<widget:ah>
hello
</widget:ah>
</wireframe:si>
</wireframe:wireframe>
请告诉我如何避免在输出 XML 中出现命名空间。
提前谢谢你。
【问题讨论】:
-
您能否提供有问题的 XML 和 XSLT 文件的 sn-p。
-
您提供的预期输出不是有效的 XML,因为它缺少命名空间定义。为什么你甚至需要它?
-
只是为了澄清,您是否试图创建对用户控件、标签库或类似的东西的引用?正如 newtover 所问,尚不清楚为什么需要前缀。