使用XPath表达式如何在节点后立即获得第一个文本节点?

我想进入具有此文本的确切节点:’公司’.一旦到达此节点,我想立即到达此节点后面的下一个文本节点,因为它包含公司名称.我怎么能用Xpath做到这一点?

XML的片段是:

<div id="jobsummary">
    <div id="jobsummary_content">
        <h2>Job Summary</h2>
        <dl>
            <dt>Company</dt>
            <!-- the following element is the one I'm looking for -->
            <dd><span class="wrappable">Pinpoint IT Services, LLC</span></dd>
            <dt>Location</dt>
            <dd><span class="wrappable">Newport News, VA</span></dd>
            <dt>Industries</dt>
            <dd><span class="wrappable">All</span></dd>
            <dt>Job Type</dt>
            <dd class="multipledd"><span class="wrappable">Full Time</span></dd><dd class="multipleddlast"><span class="wrappable"> Employee</span></dd>
        </dl>
    </div>
</div>

我使用以下xpath获得了公司标签:// * [text()=’Company’]
现在我想进入下一个文本节点.我的XML是动态的.所以我不能硬编码节点类型,如< dd>获得公司价值.但这肯定是值在下一个文本节点中.

那么如何在具有文本作为公司的节点之后立即到达文本节点?

最佳答案 如果您无法硬编码以下兄弟节点的任何部分,则您的xpath应如下所示:

//*[text()='Company']/following::*/*/text()

假设所需的文本始终包含在另一个元素中,例如span.

要测试给定的dt文本,请将xpath修改为

//*[text()='Company' or text()='Company:' or text()='Company Name']/following::*/*/text()
点赞