使用XSLT更改xml文件中document元素的属性值

时间:2013-11-04 15:07:06

标签: xml xslt

我正在尝试使用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中这样做的正确方向吗?

提前致谢!

1 个答案:

答案 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),它是层次结构中的一个层次。