1

在这种情况下,我需要选择没有元数据元素的标识符 6789

<dt class="document-metadata">Metadata</dt>

在 dd @class=document-manifest 兄弟下,可以使用类或文本进行检查,因为它不会改变。

<dt class="document-manifest">
    <a class="document" href="/Document/12345">12345</a>
</dt>
<dd class="document-manifest">
    <dl class="document-manifest-items">
        <dt class="document-summary">Document Summary</dt>
        <dd class="document-summary">
            <dl class="document-summary">
                <dt class="document-metadata">MetaData</dt>
            </dl>
        </dd>
    </dl>
</dd>
<dt class="document-manifest">
    <a class="document" href="/Document/6789">6789</a>
</dt>
<dd class="document-manifest">
    <dl class="document-manifest-items">
        <dt class="document-summary">Document Summary</dt>
        <dd class="document-summary">
            <dl class="document-summary">
            </dl>
        </dd>
    </dl>
</dd>

在这种情况下,它应该只选择 6789 标识符。

我已经尝试了一堆似乎无法正确处理的事情。

想像下面这样的东西似乎可以返回id,无论它是否有元数据

//dt[@class='document-manifest']/a[not(../dd/dl/dd/dl/dt[@class='document-metadata'])]
4

1 回答 1

1

这似乎有效,但可能是更好的方法

//dt[@class='document-manifest']/a[../following-sibling::*[1]/dl/dd[@class='document-summary']/dl/not(dt='MetaData')]
于 2013-06-25T02:48:19.063 回答