私のXMLフォーマットは、私は属性のみk="power" v="substation"
を持っているこれらのノードを必要とする単一のXPath式で特定の子供のすべての属性を選択するにはどうすればよいですか?
<node id="7463888842" lat="6666" lon="66666" version="6">
<tag k="power" v="substation"/>
<tag k="voltage" v="20000"/>
<tag k="building" v="transformer_tower"/>
<tag k="substation" v="minor_distribution"/>
</node>
<node id="277852742" lat="6766" lon="666676" version="6">
<tag k="ref" v="64268"/>
<tag k="name" v="Hambergen Sandstraße"/>
<tag k="power" v="substation"/>
<tag k="voltage" v="20000"/>
<tag k="location" v="kiosk"/>
<tag k="operator" v="EWE"/>
<tag k="frequency" v="50"/>
<tag k="substation" v="minor_distribution"/>
</node>
<node id="274965842" lat="66" lon="666" version="6"/>
<node id="2732132642" lat="666" lon="6666" version="6"/>
<node id="274454552" lat="6" lon="6.6" version="6"">
<tag k="power" v="substation"/>
</node>
以下のようであり、これは私が他のすべての属性(すなわち。同じノードで両方のk="_something_" and v="_something_"
を必要とするマッチ。
がある場合最初の部分(k="power" v="substation"
を持つすべてのノードを見つけるためには、私はこのXPath式
expression1sub = xpath.compile('self::*[tag[@v="station"] or tag[@v= "substation"] or tag[@v="sub_station"]]');
を使用して、この
を使用してチェックしていますList = expression1sub.evaluate(nodes.item(i), XPathConstants.BOOLEAN);
今私はList
が真であるかどうかをチェックし、真であれば、すべてのタグに他のすべての属性が必要です。
たとえば、最初のノードのタグk="power" v="substation"
が存在します。他のすべての属性(つまり、voltage 20000, building, transformer_tower, substation, minor_distribution
)が必要です。
MATLABで単一のXPath式を使用してこれを達成できるかどうか教えてください。
私はこのXPathのself::*[tag[@v="station"] or tag[@v= "substation"] or tag[@v="sub_station"]]/tag[@*]
を使用してみましたが、残念ながらそれは動作しません。