Questions tagged «xpath»

XPath的主要目的是解决XML文档的某些部分。它还提供了用于处理字符串,数字和布尔值的基本功能。XPath使用一种紧凑的非XML语法。XPath在XML文档的抽象逻辑结构上运行,而不是在其表面语法上运行。


2
为什么XPath中的索引以1而不是0开头?
我和一些同事正在比较我们过去编程的语言,并在谈论我们在VBScript中的使用经验,它具有奇特的功能,例如基于1的索引而不是几乎所有其他语言都具有的基于0的索引,原因是用户语言(例如Excel VBA)而不是开发人员语言。 然后有人说:“ XPath也有基于1的索引 ”,直到我找到这篇文章,我才不敢相信。在这篇文章中,有很多理由支持基于0的方法,包括Michael Kay本人的一些理由: “ ...从零开始的索引趋向于在使用一维数组访问表达式访问多维数组时简化索引公式” “在处理表或下标为字符串时,从零开始的寻址通常会更加方便” “ ...硬件寻址不是基于0的寻址的唯一好处...它还使计算更容易...” 但随后引用了迈克尔·凯的结论: ...基于1的逻辑是XPath和XSLT的正确选择...因为该语言是为用户而不是为程序员设计的,并且用户仍然习惯将本书的第一章称为Chapter之一... 有人可以向我解释吗? (1)XPath是如何为用户设计的?我无法想象任何不是开发人员都对XPath的语法严格性或XSLT的声明性/功能性编程方面感到困惑的人。和(2)为什么确实的XPath的创造者违背现代编程语言的规范,通过选择基于1指数?
117 xslt  xpath  indexing 

5
获取子节点包含属性的节点
假设我有以下XML: <book category="CLASSICS"> <title lang="it">Purgatorio</title> <author>Dante Alighieri</author> <year>1308</year> <price>30.00</price> </book> <book category="CLASSICS"> <title lang="it">Inferno</title> <author>Dante Alighieri</author> <year>1308</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book …
116 xml  xpath 


9
从SQL Server 2008中的XML字段中选择值
仅查看我的XML字段,我的行将如下所示: <person><firstName>Jon</firstName><lastName>Johnson</lastName></person> <person><firstName>Kathy</firstName><lastName>Carter</lastName></person> <person><firstName>Bob</firstName><lastName>Burns</lastName></person> 请注意,这是我表中的三行。 我想以表格形式返回SQL结果 Jon | Johnson Kathy| Carter Bob | Burns 什么查询可以完成此任务?
111 sql-server  xml  xpath 

5
如何使用XPath忽略名称空间
我的目标是使用XPath从具有多个名称空间的多个xml文件中提取某些节点。只要我知道名称空间URI,一切都可以正常工作。名称空间名称本身保持不变,但是架构(XSD)有时是客户端生成的,即我不知道。然后我基本上剩下三个选择: 仅对名称空间使用一种架构,希望没有任何问题(我确定吗?) 获取文档的子节点,并查找具有名称空间URI的第一个节点,希望在那里,然后仅使用URI,希望其正确。可能由于多种原因而出错 以某种方式告诉xpath:“看,我不在乎名称空间,只找到具有此名称的所有节点,我什至可以告诉您名称空间的名称,而不仅仅是URI”。这是这里的问题... 这并不是在这里或此处找到的许多“我的xpath表达式不起作用,因为我不知道名称空间意识”问题的重申。我知道如何使用名称空间感知。只是不是如何摆脱它。

2
XPath-选择等于值的元素
在Xpath中,我要选择等于特定值的元素。 样本XML数据: <aaa id="11" > <aaa id="21" > <aaa id="31" ></aaa> <bbb id="32" > <aaa id="41" ></aaa> <bbb id="42" ></bbb> <ccc id="43" ></ccc> <ddd id="44" >qwerty</ddd> <ddd id="45" ></ddd> <ddd id="46" ></ddd> </bbb> </aaa> <bbb id="22" > <aaa id="33" >qwerty</aaa> <bbb id="34" ></bbb> <ccc id="35" ></ccc> <ddd id="36" ></ddd> <ddd …
110 xpath 

3
如何在XDocument中使用XPath?
还有一个类似的问题,但是在我看来,该解决方案没有解决:XDocument,XPath和名称空间的怪异之处 这是我正在使用的XML: <?xml version="1.0" encoding="utf-8"?> <Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema"> <ReportInfo> <Name>Demo Report</Name> <CreatedBy>Unit Test</CreatedBy> </ReportInfo> </Report> 下面是我认为应该可以正常运行的代码,但是没有成功... XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml"); XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema"); Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null); 有人有什么想法吗?谢谢。
109 c#  .net  xml  xpath  linq-to-xml 

1
熊猫read_xml()方法测试策略
当前,pandas I / O工具没有维护read_xml()方法,而相应的工具to_xml()。但是,read_json证明可以为数据帧导入和read_html标记格式实现树状结构。 如果大熊猫团队会考虑这样一个read_xml为未来大熊猫版本的方法,他们会追求什么实现:使用内置的解析xml.etree.ElementTree其iterfind()或iterparse()功能或第三方模块,lxml其XPath 1.0和XSLT 1.0的方法呢? 以下是我在简单,扁平,以元素为中心的XML输入上针对四种方法类型的测试运行。所有这些都针对root的任何第二级子级进行了通用解析,并且每种方法都应产生完全相同的pandas数据帧。除最后一次调用外pd.Dataframe(),所有其他功能都在词典列表中。XSLT方法将XML转换为CSV,以便StringIO()在中进行转换pd.read_csv()。 问题 (多部分) 性能:您如何解释由于iterparse迭代解析文件而通常建议对较大文件使用的速度较慢的速度?部分原因是由于if逻辑检查吗? 内存:CPU内存是否与I / O调用中的时间相关?XSLT和XPath 1.0在较大的XML文档中往往无法很好地扩展,因为必须在内存中读取整个文件才能进行解析。 策略:词典列表是Dataframe()呼叫的最佳策略吗?请参阅以下有趣的答案:生成器版本和iterwalk用户定义版本。两个上载列表到数据帧。 输入数据(Stack Overflow当前的年度最大用户,其中包括我们的熊猫朋友) <?xml version="1.0" encoding="utf-8"?> <stackoverflow> <topusers> <user>Gordon Linoff</user> <link>http://www.stackoverflow.com//users/1144035/gordon-linoff</link> <location>New York, United States</location> <year_rep>5,985</year_rep> <total_rep>499,408</total_rep> <tag1>sql</tag1> <tag2>sql-server</tag2> <tag3>mysql</tag3> </topusers> <topusers> <user>Günter Zöchbauer</user> <link>http://www.stackoverflow.com//users/217408/g%c3%bcnter-z%c3%b6chbauer</link> <location>Linz, Austria</location> <year_rep>5,835</year_rep> <total_rep>154,439</total_rep> <tag1>angular2</tag1> <tag2>typescript</tag2> <tag3>javascript</tag3> </topusers> <topusers> <user>jezrael</user> …
109 python  xml  pandas  xslt  xpath 

9
我们可以将xpath与BeautifulSoup一起使用吗?
我正在使用BeautifulSoup抓取网址,并且我有以下代码 import urllib import urllib2 from BeautifulSoup import BeautifulSoup url = "http://www.example.com/servlet/av/ResultTemplate=AVResult.html" req = urllib2.Request(url) response = urllib2.urlopen(req) the_page = response.read() soup = BeautifulSoup(the_page) soup.findAll('td',attrs={'class':'empformbody'}) 现在在上面的代码中,我们可以findAll用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以便提供更多帮助吗?

3
XPath:如何检查属性是否存在?
给定以下XML,我该如何编写XPath查询来提取foo存在该属性的节点?: <node1> <node2> <node3 foo='bar'></node3> <node3></node3> <node3 bar='foo'></node3> <node3 foo='foobar'></node3> </node2> </node1>
104 xml  xpath 

2
如何使用xpath选择以下同级/ xml标记
我有一个HTML文件(来自Newegg),它们的HTML如下组织。规格表中的所有数据均为“ desc ”,而每个部分的标题均为“ name”。以下是Newegg页面中的两个数据示例。 <tr> <td class="name">Brand</td> <td class="desc">Intel</td> </tr> <tr> <td class="name">Series</td> <td class="desc">Core i5</td> </tr> <tr> <td class="name">Cores</td> <td class="desc">4</td> </tr> <tr> <td class="name">Socket</td> <td class="desc">LGA 1156</td> <tr> <td class="name">Brand</td> <td class="desc">AMD</td> </tr> <tr> <td class="name">Series</td> <td class="desc">Phenom II X4</td> </tr> <tr> <td class="name">Cores</td> <td class="desc">4</td> </tr> <tr> …
102 xml  xpath  lxml 

5
有XSLT名称元素吗?
在XSLT中有 <xsl:value-of select="expression"/> 获取元素的值,但是是否可以选择元素的标记名? 在这种情况下: <person> <!-- required stuff --> <name>Robert</name> <!-- optional stuff, free form for future extension. Using XMLSchema's xsd:any --> <profession>programmer</profession> <hobby>photography</hobby> </person> <xsl:for-each select="person"> <xsl:tag-of select="."/> : <xsl:value-of select="."/> </xsl:for-each> 要获得这样的输出: name : Robert profession : programmer hobby : photography 当然,以上XSLT不会编译,因为 <xsl:tag-of select="expression"/> 不存在。但是,怎么办呢?
101 xml  xslt  xpath 

4
如何使用XPath选择任何深度的子元素?
假设我有这个(简体): <form id="myform"> <!-- some input fields --> <input type="submit" value="proceed"/> </form> 然后,我可以通过XPath选择提交按钮//form[@id='myform']/input[@type='submit']。大。 但是,我的模板可能会更改,并且我希望在提交按钮位于的深度上保持灵活性。可以将其放在表格中,如下所示: <form id="myform"> <!-- some input fields --> <table><tr><td> <input type="submit" value="proceed"/> </td></tr></table> </form> 我知道我可以选择孙子元素,但是我不能选择任何深度的孙子。例如: //form[@id='myform']/*/input[@type='submit'] 只选择孙子,不再深入。 //form[@id='myform']/*/*/input[@type='submit'] 只选择孙子,没有更多或更少的深度。 //form[@id='myform']/**/input[@type='submit'] 无效。 因此,如何在不使用元素ID的情况下可靠地选择此提交按钮?
101 xpath 

3
XPath:如何选择没有属性的节点?
使用XPath,如何选择没有属性的节点(其中属性计数= 0)? 例如: <nodes> <node attribute1="aaaa"></node> <node attribute1="bbbb"></node> <node></node> <- FIND THIS </nodes>
94 xpath 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.