1

我正在尝试使用 XSLT 转换更改 XML 文件中文档元素的属性值。例如,

<?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 中执行此操作的正确方向吗?

提前致谢!

4

1 回答 1

3

您将需要一个包含两个模板的样式表。身份模板(查找)和这个:

<xsl:template match="/*/@pathName">
  <xsl:attribute name="{name()}">
    <xsl:value-of select="'/local/xyz.xml'" />
  </xsl:attribute>
</xsl:template>

<xsl:param>如果您不想硬编码新值,可以使用 an动态传递新路径。

小修正:XML 文档的根节点( /) 没有属性。您的意思是文档元素( /ns1:xmlgMsc),它是层次结构的下一层。

于 2013-11-04T15:36:28.437 回答