我正在尝试使用XSLT转换更改XML文件中document元素的属性值。例如,
<?xml version="1.0" encoding="UTF-8"?>
<ns1:xmlgMsc xmlns:ns1="org.example" formatVersion="1.0" name="BlaBlah" pathName="/system/abc.xml" writtenBy="Me me me">
<ns1:blockRoot someAtt="0" anotherAtt="1" />
</ns1:xmlgMsc>
这里我想将“pathName”更改为另一条路径(例如“/local/xyz.xml”)。有人可以提供语法或指出我在XSLT中这样做的正确方向吗?
提前致谢!
答案 0 :(得分:3)
您需要一个包含两个模板的样式表。身份模板(查找)和这一个:
<xsl:template match="/*/@pathName">
<xsl:attribute name="{name()}">
<xsl:value-of select="'/local/xyz.xml'" />
</xsl:attribute>
</xsl:template>
如果您不想对新值进行硬编码,可以使用<xsl:param>
动态传递新路径。
次要更正:XML文档的根节点(/
)没有属性。你的意思是文档元素(/ns1:xmlgMsc
),它是层次结构中的一个层次。