我有这样的XML
案例1
<A>
<B>
<TAB name="tab1a">
<FIELD name="myField">
</FIELD>
</TAB>
</B>
</A>
案例2
<A>
<B>
<TAB name="tab1b">
<C>
<D>
<FIELD name="myField">
</FIELD>
</D>
</C>
</TAB>
</B>
</A>
案例3
<A>
<TAB name="tab1c">
<B>
<C>
<D>
<FIELD name="myField">
</FIELD>
</D>
</C>
</B>
</TAB>
</A>
我需要获得TAB
的名称,其中包含名为FIELD
的{{1}}。
到目前为止我已经尝试了
myField
和
//Tab[Field[@name="myField"]]/@name
但我想在一个通用查询中进行。
答案 0 :(得分:1)
这个XPath,
//TAB[.//FIELD/@name='myField']/@name
将返回@name
元素的TAB
值FIELD
元素,其中@name
元素"myField"
TAB/@name
tab1a
tab1b
tab1c
。它可以根据要求单独为您的每个案例工作。
如果要将所有案例包装在单个根元素中,它将返回所有FIELD
值,
ntext
因为它们都包含符合条件的nvarchar(max)
后代。