我试图从位置为30的xml文件中提取一些数据,其中包含单词“mardi”。我试过几种变体,这是最新的一种:
//ns:RESULTSET/ns:ROW/ns:COL[position()=30 and contains(text(),'mardi')]它不会返回任何东西,但是当我运行时:
//ns:RESULTSET/ns:ROW/ns:COL[position()=30]它返回:
<ns:COL><ns:DATA>mardi</ns:DATA></ns:COL><ns:COL><ns:DATA>logement coopératif</ns:DATA></ns:COL>得到我想要的东西的正确语法是什么?我在linux上使用Xacobeo,如果这有什么区别的话。谢谢
发布于 2016-05-19 12:34:29
您尝试的XPath没有工作,因为文本'mardi‘是嵌套在ns:DATA元素中的,而不是ns:COL的直接子元素。通过在谓词中使用text(),只计算上下文元素的直接子文本节点(在本例中为ns:COL)。
若要计算上下文元素中的整个文本,请使用.:
//ns:RESULTSET/ns:ROW/ns:COL[position()=30 and contains(.,'mardi')]或者您可能希望显式地计算ns:DATA子元素中的文本:
//ns:RESULTSET/ns:ROW/ns:COL[position()=30 and contains(ns:DATA,'mardi')]https://stackoverflow.com/questions/37323284
复制相似问题