使用XPath表达式如何获取紧随节点之后的第一个文本节点?

Jee*_*ets 5 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>
Run Code Online (Sandbox Code Playgroud)

我使用以下xpath到达了Company标记://*[text()= 'Company'] 现在,我想到达下一个文本节点。我的XML是动态的。因此,我无法像<dd>获取公司价值那样对节点类型进行硬编码。但这可以确保该值位于下一个文本节点中

那么,如何在文本为Company的节点之后立即到达文本节点?

Fil*_*urt 3

如果您无法对following-sibling节点的任何部分进行硬编码,您的 xpath 应该如下所示:

//*[text()='Company']/following::*/*/text()
Run Code Online (Sandbox Code Playgroud)

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


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

//*[text()='Company' or text()='Company:' or text()='Company Name']/following::*/*/text()
Run Code Online (Sandbox Code Playgroud)