1

整个下午,

我试图找到包含特定单词的所有 xml 标记 - 即使用通配符。

xml 是这样使用的:

xml = $('<elements>' + $('#form_template').val() + '</elements>');

#form_template 中包含 xml 内容的位置。然后我想在整个 xml 树中搜索以item开头的标记名。我试过xml.match(/item_[0-9]+/)了,但这返回匹配不是一个函数。

任何线索如何在整个 xml 中搜索包含项目的标签?

问候,

编辑:代码示例 这用于创建 zend 表单。html 与示例无关。

<QUESTION1>
<type>MultiCheckbox</type>
<options>
<class>rulem1 type-1 standard</class>
<label>Fabs and Equipments</label>
<multioptions>
<item-separate_equipments>Separate Equipments</item-separate_equipments>
<item-lasers>Lasers</item-lasers>
<item-metrology>Metrology / Inspection</item-metrology>
<item-turnkey>Turnkey Lines</item-turnkey>
<item-factory>Factory Design</item-factory>
</multioptions>
</options>
</QUESTION1>
<QUESTION2>
<type>MultiCheckbox</type>
<options>
<class>rulem1 type-1 standard</class>
<label>Material and Components</label>
<multioptions>
<item-backsheets>Backsheets</item-backsheets>
<item-raw_materials>Raw Materials</item-raw_materials>
<item-auxiliary>Auxiliary Materials</item-auxiliary>
<item-cell_coating>Coating</item-cell_coating>
<item-pastes>Pastes / Metallisation</item-pastes>
<item-tf>TF Gas</item-tf>
<item-foils>Foils</item-foils>
<item-encapsulation>Encapsulation</item-encapsulation>
<item-aluminium>Aluminium</item-aluminium>
<item-junction>Junction Box and Connection Systems</item-junction>
<item-materials_others>Others</item-materials_others>
</multioptions>
</options>
</QUESTION2>
4

1 回答 1

3

您应该能够使用.find(*)递归查找所有标签,然后自己过滤它们,例如:

var res = xml.find('*').filter(function() {
    return this.nodeName.match(/item_[0-9]+/i);
});
于 2012-05-16T15:19:13.290 回答