我想添加“xmlns”使用 xslt 的 xml 文件中的属性
我想要以下 xml 文件输出:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <T0020 xsi:schemaLocation="http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.safersys.org/namespaces/T0020V1">
- <INTERFACE>
<NAME>SAFER</NAME>
<VERSION>04.02</VERSION>
</INTERFACE>
为此我有以下 xslt 文件:
<xsl:template match="T0020" >
<xsl:copy>
<xsl:attribute name="xsi:schemaLocation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd </xsl:attribute>
//some code here...............//
<xsl:copy>
所以我在
标签下添加 xmlns="http://www.safersys.org/namespaces/T0020V1" 属性?
I want to following xml file output:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <T0020 xsi:schemaLocation="http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.safersys.org/namespaces/T0020V1">
- <INTERFACE>
<NAME>SAFER</NAME>
<VERSION>04.02</VERSION>
</INTERFACE>
for that i have following xslt file:
<xsl:template match="T0020" >
<xsl:copy>
<xsl:attribute name="xsi:schemaLocation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd </xsl:attribute>
//some code here...............//
<xsl:copy>
so i add xmlns="http://www.safersys.org/namespaces/T0020V1" attribute under <T0020>
tag??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此转换:
应用于此 XML 文档时:
产生所需结果:
请注意
xmlns
不是属性,而是表示名称空间声明。This transformation:
when applied on this XML document:
produces the wanted result:
Do note that
xmlns
is not an attribute, but denotes a namespace declaration.此样式表:
使用此输入:
输出:
注意:命名空间节点不是属性节点。如果您希望没有命名空间中的元素在某个命名空间下获得输出,则需要
xsl:element/@namespace
。This stylesheet:
With this input:
Output:
Note: Namespace node are not attributes nodes. If you want that elements in no namespace gets output under some namespace you need the
xsl:element/@namespace
.