草庐IT

XPath_Query

全部标签

java - 优化 DOM 和 XPath Java 代码

我的代码太慢了,但我不确定如何改进它。将一个1k文件从磁盘读入DOM大约需要20毫秒,这可能没问题,具体取决于磁盘,但是我还有另外20毫秒用于处理xpath语句,这太多了。这是一些带有时间注释的示例代码。我怎样才能改进代码?这发生在构建时:DocumentBuilderFactorydbFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdBuilder=this.dbFactory.newDocumentBuilder();XPathExpression[]ex=newXPathExpression[]{about3

java - 如何使用 Xpath 在 XML 树的节点后检索节点?

首先,我必须说,我发现Xpath是一个非常好的解析器,而且我认为与其他解析器相比它非常强大。给定以下代码:DocumentBuilderFactorydomFactory=DocumentBuilderFactory.newInstance();domFactory.setNamespaceAware(true);DocumentBuilderbuilder=domFactory.newDocumentBuilder();Documentdoc=builder.parse("input.xml");XPathxpath=XPathFactory.newInstance().newXPa

xml - 带条件的 xpath

如何使用复杂条件获取Xpath中的元素?例如:ThisisashortnameThisisaLONGname目标:获取标签的文本WHERExml:format="long"。预先感谢您的帮助! 最佳答案 看看这个:http://www.w3schools.com/xpath/xpath_syntax.asp.您请求的示例:XML文档:HarryPotter29.99LearningXML39.95XPATH://title[@lang='eng']Selectsallthetitleelementsthathaveanattribu

xml - 如果 XPATH 中不存在节点,如何返回常量?

我有一个问题,请考虑以下XML:我必须使用SSIS。我想在所有订单条目的每个循环中将所有数据获取到SSIS变量。到目前为止,我可以在SSIS的控制流中使用ForeachLoop获取数据,具体如下:EnumerationType:ElementCollectionOuterXPathString://*[name()='ORDER']InnerElementType:NodeTextInnerXPathString:@*[name()='EngineID']|@*[name()='OrderID']|child::node()/@*[name()='InstID']|child::nod

Java - 子节点的 dom4j XPath

我正在使用[dom4j]1和[XPath]2以便遍历XML。假设我手头有一个Node,它有子节点,每个子节点都有相同的标签名称。例如(引用b节点):......我尝试使用selectNodes("//b")但它返回了document中的所有节点,它们的开放标记是b.如何只遍历特定节点的子节点,其中所有子节点都具有相同的标签名称(例如b)。 最佳答案 selectNodes(".//b")//-----------^.是XPath中的当前节点。请注意,//是/descendant-or-self::node()/的缩写。这意味着它还将

xml - XPath 2.0 - 选择 2 个元素之间的所有节点

我有以下XML文件:headline1foobar10052002sometextABCheadline2loremipsum10052002anothersourceDEF现在我想返回在头节点之后出现的每篇文章的所有节点在门户节点之前。因此,我正在研究XPath2节点比较(>运算符)。到目前为止,我得到的是以下内容,它返回空值:关于如何修复该xpath查询的任何想法? 最佳答案 使用:/*/*/node()[.>>../headand../portal>>.]这是一个完整的转换:>../headand../portal>>.]"/

xml - 不区分大小写的搜索 - xpath

我正在尝试使用以下XPath表达式对我的XML文档进行不区分大小写的搜索。显然,我理解错了,因为结果不同。希望这里有人能指出我的错误吗?我正在尝试获取下所有Obj元素的计数在哪里值(value)是主要目标。为了获得计数,我使用了以下非常有效的表达式。表达式-不区分大小写:返回31个节点。("count(//TaggedPDF-doc//Part//Sect//Sect//Sect[contains(Header,\"Primaryobjectives\")]//OBJ)");但我想让“主要目标”不区分大小写。所以,我试图为此使用翻译。表达式-添加翻译以使“主要目标”不区分大小写。返回0

xml - XPATH:preceding::and ancestor::之间的区别?

XPath2.0中的preceding::和ancestor::有什么区别? 最佳答案 preceding::轴包含文档中之前该节点的所有节点,不包括该节点的祖先,它们位于ancestor::轴。例如,在本文档中:e的“前面”节点将是b和c,但不是a和d因为他们是e的祖先。有道理吗?(source) 关于xml-XPATH:preceding::andancestor::之间的区别?,我们在StackOverflow上找到一个类似的问题: https://st

html - XPath:在任意数量的嵌套元素中匹配文本的方法?

一个XPath表达式是否可以匹配以下所有元素使用元素中的文本,在本例中为"Link"?示例:LinkLinkLinkLink 最佳答案 这个简单的XPath表达式,//a[contains(.,'Link')]将选择a你所有例子的元素因为.代表当前节点(a),contains()将检查stringvalue的a查看它是否包含'Link'.a的字符串值已经方便地从任何后代元素中抽象出来。这个更简单的XPath表达式,//a[.='Link']还将选择a所有示例中的元素。如果a的字符串值,则使用它是合适的将完全等于,而不仅仅是包含"Li

xml - 为什么XPath构造不干净?为什么谓词不需要text()?

假设我有:CE然后我可以输出b元素(包括标记),其中://B会回来的C但是为什么谓词中不需要text()呢?以下两行给出相同的输出:/A[B='C']/D/A[B/text()='C']/D如果xpath是干净构建的,我希望它是(或者是某种其他元素结构):/A[B=C>]/D还有:/A[B/text()='C']/D有人能告诉我为什么输出需要text()而谓词不需要它吗? 最佳答案 我认为这是一个合理而自然的问题。我宁愿看到人们问这样的概念性问题,理解xpath是如何工作的,而不是满足于对xpath的肤浅理解,最后问一些肤浅的问题,