【发布时间】:2012-04-01 10:24:54
【问题描述】:
这是一个关于概念的问题。
我有一个 XML 文件,我们称之为 base:
<base id="default">
<tags>
<tag>tag_one</tag>
<tag>tag_two</tag>
<tag>tag_three</tag>
</tags>
<data>
<data_a>blue</data_a>
<data_b>3</data_b>
</data>
</base>
我想要做的是能够在另一个文件中扩展这个XML,修改各个属性。例如,我想继承该文件并使用不同的 data/data_a 节点创建一个新文件:
<base id="green" import="default">
<data>
<data_a>green</data_a>
</data>
</base>
到目前为止,它非常简单,它将旧的 data/data_a 替换为新的。我什至可以添加一个新节点:
<base id="ext" import="default">
<moredata>
<data>extended version</data>
</moredata>
</base>
而且它仍然非常简单。当我想删除一个节点或处理 XML 列表(如 tags 节点)时,问题就出现了。
我应该如何引用列表中的特定索引?我正在考虑做类似的事情:
<base id="diffList" import="default">
<tags>
<tag index="1">this is not anymore tag_two</tag>
</tags>
</base>
对于删除节点/数组索引:
<base id="deleting" import="default">
<tags>
<tag index="2"/>
</tags>
<data/>
</base>
<!-- This will result in an XML containing these values: -->
<base>
<tag>tag_one</tag>
<tag>tag_two</tag>
</base>
但我对我的解决方案不满意。我对 XSLT 或其他 XML 转换工具一无所知,但我想以前一定有人做过。
我正在寻找的关键目标是易于手动编写 XML(基础和 “扩展”)。
我对 XML 之外的新解决方案持开放态度,如果它们易于手动编写的话。
感谢阅读。
【问题讨论】:
标签: xml actionscript-3 xslt xml-parsing