【发布时间】:2013-10-04 06:16:01
【问题描述】:
我有以下 xml:
<article article-type="research-article">
<body>
<graphic xlink:href="zee9991370930006.g.eps"/>
<self-uri xlink:title="pdf" xlink:href="zee00813002857.pdf" />
</body>
</article>
我需要将其转换为:
<article article-type="research-article" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML">
<body>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="zee9991370930006.g.eps"/>
<self-uri xlink:title="pdf" xlink:href="zee00813002857.pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</body>
</article>
我在 XSLT 2.0 中为每个需要命名空间属性的元素使用了以下命令:
<xsl:namespace name="xlink" select="'http://www.w3.org/1999/xlink'"/>
<xsl:namespace name="mml" select="'http://www.w3.org/1998/Math/MathML'"/>
但问题是我只为一个元素获取命名空间属性,即article。我也在 xslt 的开头声明了命名空间。无法弄清楚确切的问题是什么。任何形式的帮助将不胜感激。谢谢。
【问题讨论】:
-
所以你在根中得到了你想要的命名空间,为什么你想要在任何其他节点中都一样?就用它吧!
-
其实需求是这样的!
-
希望您理解其中的含义! XSLT 由您的 XML 生成器应用以根据规范生成 XML。在根处定义它使其对其下的所有节点都可用,而在节点处定义使其仅对节点的子元素可用。
-
虽然这不能回答您的问题,但我强烈建议重新查看这些要求,如果它在您的控制范围内,请更改它们! XML 生成器通常不应该做你想做的事..
-
是的,先生。我需要它,并且我已经声明了它。但它不适用于其下的节点,即
graphic和self-uri在我的情况下。
标签: xslt xml-namespaces