0

我经常碰到这样的事情。这次我有包含很多这样的行的精灵表文件:

<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"/>

现在我需要将id每个纹理区域的值增加例如 100,然后将相同的 xml 写入另一个文件或覆盖现有文件。我将不得不一次又一次地这样做,所以我需要自动化它。我可以想出无数种方法来解决这个问题。但我也想学习一些新东西,所以,这里是:

你将如何完成这样的任务?编写自定义工具?脚本?你会使用什么语言、库或工具?您可以对此进行排序的最少行数或工作量是多少?

4

2 回答 2

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选项以就地编辑文件。

于 2012-03-03T17:08:45.277 回答
1

我会使用 XSL 转换;有几个命令行处理器可以为您处理数据和样式表。

XSLT 是一种功能强大的语言,您几乎可以将 XML(V1 样式表)转换为 XML、HTML 或纯文本。因此,虽然对于增加一个 ID 等简单任务而言,它可能不是“最少的行数”,但您实际上可以进行几乎任何所需的转换。

于 2012-03-03T17:16:31.910 回答