我经常碰到这样的事情。这次我有精灵表文件,其中包含许多这样的行:
<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"/>
现在我需要在每个textureregion上增加id
例如100,然后将相同的xml写入另一个文件或覆盖现有文件。我将不得不一次又一次地这样做,所以我需要自动化它。我可以想到无数的方法来解决这个问题。但我也想学习一些新东西,这里有:
你将如何完成这项任务?写一个自定义工具?脚本?您会使用哪种语言,图书馆或工具?你排序的线路或工作量最少的是什么?
答案 0 :(得分: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
选项来编辑文件。
答案 1 :(得分:1)
我使用XSL转换;有几个命令行处理器可以为您处理数据和样式表。
XSLT是一种功能强大的语言,您几乎可以将XML(V1样式表)转换为XML,HTML或纯文本。因此,对于简单任务(例如增加一个ID)而言,它可能不是“最少量的行”,但您几乎可以完成所需的任何转换。