【发布时间】:2017-06-03 20:35:24
【问题描述】:
使用 XPath 1.0 想要获取在每个文本节点上应用 XPath 'substring' 函数的文本节点列表
substring(//p/text(), 10)
只给出一个第一个文本的子字符串,当
//p/text()
给出所有这些,但希望所有子字符串都设置好
编辑:
试过
//p/substring(text(), 10)
说无效的 XPath 表达式
我怎样才能做到这一点?
提前致谢
【问题讨论】:
-
如果不使用自定义函数,您所描述的内容在单个 XPath 1.0 表达式中是不可能的。您在哪种情况下使用此 XPath(XSLT、.NET、Java 等)?请向我们展示您调用此 XPath 的代码。
-
当然我可以从代码中做到这一点,但我目前的代码是通用的,想用 XPath 做到这一点,谢谢你的回答,将在你描述的解决方案上工作:)
-
EXSLT 定义了一个允许您执行此操作的函数:dyn:map(//p/text, 'substring(., 10)')。该页面说没有已知的 XSLT 处理器或支持该功能的 3rd 方库,但如果您的 XPath 引擎支持它或类似的东西,您可以使用它。
-
感谢回答,马上试试