0

我有这个 dtd:

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

我需要编写一个 xPath,它返回所有“prop”,其中“objs”包含带有孩子的“obj”。例如:

<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>

a 希望它返回第二和第三。

4

1 回答 1

1

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

于 2012-06-27T14:09:48.033 回答