我尝试通过串联来匹配多个元素及其所有出现的情况。
我尝试了两种表达方式
concat(//h5,'###',//h5/following-sibling::p)
concat(//*/h5,'###',//*/h5/following-sibling::p)
但两者都部分有效 - 它们仅匹配第一次出现。
我做错了什么?匹配所有事件的工作方式是什么?
当参数是像
text()
这样的表达式时,//*/h5
函数很可能会隐式使用,因此contact(//*/h5, "some")
可以翻译为concat(string(//*/h5), "some")
。
来自 string() 文档:
如果对象是节点集,则返回集合中第一个节点的字符串值。
回答OP的问题
我做错了什么?匹配所有事件的工作方式是什么?
本身没有什么问题,只是许多 XPath 1.0 函数仅对节点集的第一个元素进行操作。
那些节点集应该在外部进行迭代。