2012-06-27 59 views
0

我有这样的DTD:XML DTD - XPATH 1.0

<!ELEMENT db (obj, prop*)> 
<!ELEMENT obj (obj*)> 
<!ATTLIST obj 
    id ID #REQUIRED 
> 
<!ELEMENT prop (#PCDATA)> 
<!ATTLIST prop 
    objs IDREFS #REQUIRED 
> 

我需要写一个XPath,它返回所有的 “托”,这里, “OBJ文件” 中包含的 “目标文件” s的孩子。 例如:

<db> 
    <obj id="a007"> 
    <obj id="a008"> </obj> 
     <obj id="a009"> 
      <obj id="a011"> </obj> 
     </obj> 
    </obj> 
    <obj id="a011"> </obj> 
    <prop objs="a007 a011"> 
     "first" 
    </prop> 
    <prop objs="a007"> 
     "second" 
    </prop> 
    <prop objs="a009 a007"> 
     "third" 
    </prop> 
</db> 

一个想要它返回第二和第三。

回答

1

尝试路径/db/prop[not(id(@objs)[not(obj)])],它选择db根元素,其中id(@objs)没有找到不具有obj子的元件的那些元件prop子节点。

+0

This works。谢谢!!! – Michael