我试图找到一种方法来获取节点的名称并通过用值替换变量来编辑它。
例子:
<mbean code="abc.def.ghi" name="com.ijk.lmn:name=@value1@">
<attribute name="storename">value</attribute>
<depends optional-attribute-name="bookname">value2</depends>
<attribute name="Type">ebook</attribute>
<attribute name="Properties">
bookName=value3
booktype=value4
</mbean>
预期输出:
<mbean code="abc.def.ghi" name="com.ijk.lmn:name=newvalue">
<attribute name="storename">value</attribute>
<depends optional-attribute-name="bookname">value2</depends>
<attribute name="Type">ebook</attribute>
<attribute name="Properties">
bookName=value3
booktype=value4
</mbean>
我已经用这个 xsl 代码进行了测试,但是有些它没有捕捉到我想要的东西:
<xsl:template match="mbean[@name]">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:analyze-string select="." regex="([\w.]+)=@(.*?)@">
<xsl:matching-substring>
Value1: <xsl:value-of select="regex-group(1)"/>
Value2: <xsl:value-of select="regex-group(2)"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:copy>
</xsl:template>
我没有更改元素中的任何内容,但我正在更改节点的名称。