区块链技术博客
www.b2bchain.cn

XPath OR,替代 – c#程序员分享

本文介绍了XPath OR,替代 – c#程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我使用CSharp,XPath和HTMLAgility Pack。我使用XPath字符串,例如:

"//table[3]/td[1]/span[2]/text() | //table[6]/td[1]/span[2]/text()" "//table[8]/td[1]/span[2]/text() | //table[10]/td[1]/span[2]/text()" 

区别仅在于表号。是否可以使用其他XPath函数替换XPath或|

我的实际操作:使用第一个XPath字符串(我的表号为3和6)提取一个值。使用第二个XPath字符串(我的表号是8和10),我提取了另一个值。

还有关于性能的其他问题-XPath字符串//table[8]/td[1]/span[2]/text()是否比带有OR //table[8]/td[1]/span[2]/text() | //table[10]/td[1]/span[2]/text()的XPath字符串快?我之所以这样问,是因为我有许多许多值的XPath字符串,并且是否存在差异,这实际上意味着我需要尝试其他方法。我现在无法进行测量,这就是为什么我问您这个问题来分享您的经验的原因。

参考方案

首先,//table[6]看起来很奇怪。您确定不表示(//table)[6]吗? (第一个选择每个表作为其父级的第六个子表;第二个选择该文档中的第六个表。)我将假定后者。

在XPath 2.0中,您可以编写

(//table)[position()=(3,6,8,10)]/td[1]/span[2]/text() 

在1.0中,必须

(//table)[position()=3 or position()=6 or position()=8 or position()=10]     /td[1]/span[2]/text() 

或者(在任一发行版中)您都可以编写

((//table)[3] | (//table)[6] | (//table)[8] | (//table)[10])/td[1]/span[2]/text() 

如果不了解您使用的XPath实现,就无法回答有关性能的问题。

我有一些这样的HTML代码:<table> <tbody> <tr> <td> John <font color="red"> <b>Unemployed</b> </font> <br/>ID 12345<b> som…

有没有一种方法可以检索div元素中包含的HTML(和JavaScript)? 参考方案 我不是PHP开发人员,但发现了这一点:function getNodeInnerHTML(DOMNode $oNode) { $oDom = new DOMDocument(); foreach($oNode->childNode as $oChild) { $oD…

我发现我需要使用xpath查询来查找几乎为regexp类型的字符串,但还无法查看如何对其进行管理。我正在使用的当前查询是: $result = $xpath->query('//ul/li[starts-with(@id, "message-")]'); 这导致了一些误报。它确实应该在寻找message-123或…

尝试使用xpath表达式来学习它。我找到了一个代码段,并对其进行了一些调整。我想做的是获取页面上的每个链接。$baseurl = "http://www.example.com"; $html = file_get_contents($baseurl); $dom = new DOMDocument(); @$dom->loadHT…

我正在处理BizTalk应用程序。我已经设置了词汇表,并已开始在规则编辑器中编写规则。评估规则后,我制作了一个名为AddValidationError的函数,该函数将验证错误写入正在验证的XML文档中。从规则的“操作”部分调用AddValidationError方法。我想将正在评估的节点传递给AddValidationError方法,以便我可以确定该节点的X…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » XPath OR,替代 – c#程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们