如何在xml标记内创建动态id

时间:2017-08-02 07:59:05

标签: xml xml-parsing xml-serialization

我需要用动态替换标签入口字段$BA01的id。因此,$BA0部分保持静态但1将成为动态。

<?xml version="1.0" encoding="utf-8"?>
<panel caption="operators" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:noNamespaceSchemaLocation="../action-panel.xsd">
<group orientation="vertical" >
<group orientation="horizontal" >
<label drivedText="%NumberOfOperator('1')" />
</group>
<group orientation="horizontal" >
<entry-field id="$BA01" />
</group>
....
</group>
</panel>

我已经尝试过这种方法但是它无法在id中连接这些值,特别是它是fieldsEnumeration。

<?xml version="1.0" encoding="utf-8"?>
<panel caption="operators" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:noNamespaceSchemaLocation="../action-panel.xsd">
<group orientation="vertical" >
<group orientation="horizontal" >
<label drivedText="%NumberOfOperator('1')" />
</group>
<group orientation="horizontal" >
<entry-field id="$BA0%NumberOfOperator('1')" />
</group>
....
</group>
</panel>

%NumberOfOperator('1') return 1.

1 个答案:

答案 0 :(得分:-1)

我没有理解你的问题。你是什​​么意思&#34;动态id&#34;? 无论如何,我认为你可以使用,例如Javascript,我认为这是最简单的方法。
使用DOM,你可以访问你感兴趣的孩子。
让xml成为变量包含对XML文件的引用,然后:

  

var entryField = xml.getElementsByTagName(&#39; entry-field&#39;)// entryField   是一个包含所有子项的数组
//具有标记名称   &#34; entry-field&#34;
//为简单起见,假设entryField只有   一个元素
entryField.setAttribute(&#34; id&#34;,&#34; new_id&#34;)//所以你可以   动态更改您的属性

我希望这可能有用。对于问题,请不要犹豫。