我有一些XML结构如下:查找XML元素与特定的值与jQuery
<pressureVessel>
<closure1>
<topClosure>
<ellipsoidalHead>
<standardComponentData>
<identifier>Ellipsoidal Head #1</identifier>
<idNumber>1111</idNumber>
...
</standardComponentData>
</ellipsoidalHead>
</topClosure>
</closure1>
<closure2>
<bottomClosure>
<ellipsoidalHead>
<standardComponentData>
<identifier>Ellipsoidal Head #2</identifier>
<idNumber>2222</idNumber>
...
</standardComponentData>
</ellipsoidalHead>
</topClosure>
</closure1>
<shell>
<cylinder>
<standardComponentData>
<identifier>Cylinder #1</identifier>
<idNumber>3333</idNumber>
...
</standardComponentData>
....
</cylinder>
<cylinder>
<standardComponentData>
<identifier>Cylinder #2</identifier>
<idNumber>4444</idNumber>
...
</standardComponentData>
....
</cylinder>
<cylinder>
<standardComponentData>
<identifier>Cylinder #3</identifier>
<idNumber>5555</idNumber>
...
</standardComponentData>
....
</cylinder>
<flange>
<standardComponentData>
<identifier>Top Head Flange #1</identifier>
<idNumber>6666</idNumber>
<attachedToidNumber>1111</attachedToidNumber>
...
</standardComponentData>
</flange>
</shell>
<pressureVessel>
我在一些JavaScript被解析这个XML,和我有法兰元件作为所谓的bomNode
变量。我需要做的是找到<idNumber>
值与<flange>
元素中的>attachedToidNumber>
匹配的元素(在这种情况下,Ellipsoidal Head#1)。境内有<pressureVessel>
其他多种元素,所以我需要做的是
- 查找以
closure
开头的元素(例如closure1,closure2等)。 - 在该元素中,找到一个
<standardComponentData>
,然后<idNumber>
值与<attachedToidNumber>
(我已存储在该变量中)的子元素。 - 获取该元素,以便我可以从中获取其他数据。
那么最有效的方法是什么?还有<pressureVessel>
下的其他元素,所以我不想解析所有这些,如果我不必。
我的想法是做类似的东西
var elName = 'closure';
bomNode.parent().parent().find().has(elName).each(function(index() {
// Do something here
})
,但我不知道在哪里可以从这里走,否则我连走上了正轨。