私はこのようなXMLがあります。XPathは持つノードを見つけるために2葉の子供
:<?xml version="1.0" encoding="UTF-8"?>
<Math mode="inline" tex="\tilde{p}_{d}\leq\tilde{p}_{d+1}" text="([email protected](p)) _ d less= ([email protected](p)) _ (d + 1)">
<RMath>
<RApp>
<RTok meaning="less-than-or-equals" name="leq" role="RELOP">?</RTok>
<RApp>
<RTok role="SUBSCRIPTOP" scriptpos="post2"/>
<RApp>
<RTok name="tilde" role="OVERACCENT" stretchy="false">~</RTok>
<RTok role="UNKNOWN" font="italic">p</RTok>
</RApp>
<RTok role="UNKNOWN" font="italic">d</RTok>
</RApp>
<RApp>
<RTok role="SUBSCRIPTOP" scriptpos="post2"/>
<RApp>
<RTok name="tilde" role="OVERACCENT" stretchy="false">~</RTok>
<RTok role="UNKNOWN" font="italic">p</RTok>
</RApp>
<RApp>
<RTok meaning="plus" role="ADDOP">+</RTok>
<RTok role="UNKNOWN" font="italic">d</RTok>
<RTok meaning="1" role="NUMBER">1</RTok>
</RApp>
</RApp>
</RApp>
</RMath>
</Math>
は、私は2人の子供が葉ノードなどのある2人の子供を持つノードを抽出するためのXPathを使用したいが
<RApp>
<RTok name="tilde" role="OVERACCENT" stretchy="false">~</RTok>
<RTok role="UNKNOWN" font="italic">p</RTok>
</RApp>
この抽出には適切な述語を考えることはできません。
私は.//*[not(child::*)]
がすべての葉ノードを見つけることを知っています。
および//*[not(child::*) and (ancestor-or-self::XMApp)]
は、祖先タグがRApp
のすべての葉ノードを見つけるでしょう。
私はノード(RApp)は望んでいませんが、その子は欲しいですか?他の兄弟を持たない任意の2葉の兄弟である。
ご協力いただければ幸いです。
' .//*[count(child "のリーフがあり、正確に2子孫[子供とサブ子供]を持つノード" を一致させるのでしょうか? – Xenos
これは動作しませんでした。お試しいただきありがとうございます – MathGirl