java - 使用 Java 的 XPath - 在子标签之间选择文本值

标签 java xml xhtml xpath

我正在处理这个 html 片段:

<p class="pageSelector">
    <a href="/BlaBla">&lt; Prev</a>&nbsp;
    <a href="/BlaBla">1</a>&nbsp;
    <a href="/BlaBla">2</a>&nbsp;
    <a href="/BlaBla">3</a>&nbsp;
    4&nbsp;
    <a href="/BlaBla">5</a>&nbsp;
    <a href="/BlaBla">6</a>&nbsp;
    <a href="/BlaBla">Next &gt;</a>&nbsp;
</p>

呈现(或多或少)为 4 5 6 Next >

我想选择“4”,因为我需要发现“当前”页面。使用

//p[@class='pageSelector']/text()[normalize-space()]

(使用 Firefox XPath Ckecker 测试)我以为我已经解决了但没有,因为我获得了 7 个匹配项。

谁能告诉我哪里错了? 谢谢

最佳答案

normalize-space 删除空格,但出于此目的,不间断空格字符(尽管它的视觉外观)不被视为空格。所以我会做

text()[translate(., '&#x20;&#x09;&#x0a;&#x0d;&#xa0;', '')]

它将返回那些包含除空格或无间断字符以外的字符的子文本节点;然后您可能需要进一步处理以提取您想要的部分内容。

关于java - 使用 Java 的 XPath - 在子标签之间选择文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5001704/

相关文章:

java - rocksdb 内存不足

android - LinearLayout透明度问题?

xml - 如何使用 xsl-fo 页脚和页眉生成 pdf?

performance - 向内联图像添加宽度和高度是否会提高页面加载性能?

javascript - 像素和浏览器与我的 jQuery 效果有关的小问题

java - Docx4j 库不是线程安全的。解决此问题的可能方法有哪些?

java - 不同语言中静态代码和有状态代码分离的差异

java - JAXB、带有 @XmlID 注释的 XML mashal

ajax - Primefaces p :overlayPanel is empty when update attribute is used in child tag

java - 为什么当我切换到横向时,对用户界面的更改会被撤消?