2011-07-08 8 views
0

私は最近作ったソフトウェアの機能強化をテストする必要があります。これを行うには、56個のXMLローダーファイルに1000個の変更を加える必要があります(合計56,000個)。私は/検索を行う56個の各ファイルに置き換えることができ複数のxmlファイルでfindの置換を自動化

</users> 
</service> 

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

これに、それは面倒なことになります。具体的には、私は次のように変更する必要があります。このプロセスを自動化する良い方法はありますか?前もって感謝します。

+0

これには多くの解決策があります。 xslt、pearl、powershell、php、Java、C#、ETLツールを使うことができます。あなたが使いたいものを教えてください –

答えて

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のノードをコピーするアイデンティティのテンプレートを使用して)それは<service>要素の最後の子である場合<users>要素の後に新しい要素を追加するために、別のテンプレート。

関連する問題