在多个xml文件中查找替换的自动化

时间:2011-07-08 16:24:39

标签: xml automation

我需要测试我最近制作的软件增强功能。为此,我需要在56个xml加载器文件中进行1000次更改(总共56,000次)。具体来说,我需要更改以下内容:

   </users> 
</service>

进入这个

   </users>
   <rules>
       <ruleid="13e77ade-f15c-433f-aac8-2fdaf2d867a5" /> 
   </rules>
   <temprestriction /> 
</service>

我可以对56个文件中的每一个进行查找/替换,但这将是乏味的。有没有一种很好的方法来自动化这个过程?提前谢谢。

1 个答案:

答案 0 :(得分:2)

与评论中提到的@ConradFrix类似:您可以使用不同的工具/方法来解决此问题。

这是一个基于XSLT的解决方案。代码未经过广泛测试。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output indent="yes" method="xml" encoding="utf-8" omit-xml-declaration="yes"/>

    <xsl:template match="node() | @*" name="identity">
        <xsl:copy>
            <xsl:apply-templates select="node() | @*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="service/*[last()][self::users]">
        <xsl:call-template name="identity"/>
        <rules>
            <rule id="13e77ade-f15c-433f-aac8-2fdaf2d867a5" />
        </rules>
        <temprestriction />
    </xsl:template>

</xsl:stylesheet>

要点:1)使用身份模板递归复制文档的节点2)单独的模板,以便在<users>元素之后添加新元素(如果它是<service>元素的最后一个子元素。