我想修改一个非常长的xml的属性,如下所示: element index="0" subelement bla="asdf" / subelement bla="asdf" //elementelement index="1" subelement bla="asdf" / subelement bla="asdf" //element... 我需要添加N每个索引属性
<element index="0"> <subelement bla="asdf" /> <subelement bla="asdf" /> </element> <element index="1"> <subelement bla="asdf" /> <subelement bla="asdf" /> </element> ...
我需要添加N每个索引属性的值.说N = 5.结果将是:
<element index="5"> <subelement bla="asdf" /> <subelement bla="asdf" /> </element> <element index="6"> <subelement bla="asdf" /> <subelement bla="asdf" /> </element> ...
最简单的方法是什么?我认为这将与XSLT,但我不知道如何做到这一点.
谢谢!
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes"/> <!-- copy everything verbatim --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </xsl:template> <!-- except "element" nodes --> <xsl:template match="element"> <xsl:copy> <xsl:attribute name="index"> <xsl:value-of select="@index + 5"/> </xsl:attribute> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet>