2012-03-03 6 views
0

私はこのようなことに非常によくぶつかります。この時間は、私はこのような行の多くを含むスプライトシートファイルがあります。カスタムツールやスクリプトを使ってxmlファイルを解析して変更する

<textureregion id="2" src="blue_ship1.png" x="778" y="791" width="64" height="65" rotated="false" trimmed="false" srcx="0" srcy="0" srcwidth="64" srcheight="65"/> 

を今、私は例えば100で各textureregionにidをインクリメントし、その後、別のファイルに同じXMLを書いたり、既存を上書きする必要があります。これを何度もやり直さなければならないので、私はそれを自動化する必要があります。私はこれについて何度も行く方法を考えることができます。しかし、私も新しいことを学びたいと思うので、ここに行く:

どのようにあなたはそのような仕事を完了しますか?カスタムツールを作成しますか?スクリプト?どの言語、ライブラリ、ツールを使用しますか?あなたがこれを並べ替えることができる最小限の線や作業は何ですか?

答えて

1

xmlstarletを使用してXMLファイルを編集できます。たとえば
id ==> id+100

$ xmlstarlet edit --update '/textureregion/@id' -x '.+100' input.xml 
<?xml version="1.0"?> 
<textureregion id="102" src="blue_ship1.png" x="778" y="791" width="64" height="65" rotated="false" trimmed="false" srcx="0" srcy="0" srcwidth="64" srcheight="65"/> 

あなたは、ファイルのインプレースを編集する--inplaceオプションを追加することができます。

+0

これは美しく機能しました。 – vertti

1

私はXSL変換を使用します。データとスタイルシートを処理できるコマンドラインプロセッサがいくつか用意されています。

XSLTはXML(V1スタイルシート)をXML、HTML、またはプレーンテキストに変換することができる強力な言語です。したがって、1つのIDを増やすなどの簡単な作業では、「最小限の回線量」ではないかもしれませんが、必要な変換は実際にはほとんどできます。

関連する問題