这是 Javascript 中的有效 XPath:
id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
这变成了与 DOMXPath->query() 一起使用的有效 PHP XPath 是
//*[@id="priceInfo"]//div[@class="standardProdPricingGroup"]//span[1]
- 您知道已经进行此转换的任何库或自定义组件吗?
- 您知道列出两种语法差异的可用文档吗?
我主要担心的是可能存在很多差异,我正在寻找这些差异,但我在识别这些差异时遇到了问题。
这个问题也可以用不同的方式提出:由于 Javascript 可以有不同的有效 XPath 格式,如何规范它们以与 PHP 一起使用。
其中一项更新还提到,如果存在包含此定义的有效 DTD,则 id() 函数是有效的 XPath。我没有输入 DTD 的权力,如果有办法找到一个没有任何特定 DTD 的解决方案,那就太棒了。
更新:
我想用算法将第一种格式转换为第二种格式。我的输入是第一个而不是第二个。不能改变这一点。
正如@Nison Maël 所指出的,第二种格式是有效的 Javascript XPath,如下所示:http://jsbin.com/elatum/2/edit不幸的是,这只会增加 Javascript XPath“碎片化”的问题。
@salathe 指出,如果记录的输入具有有效的 DTD(@Dimitre Novatchev 在评论中提到这一点,但忽略了重要性),则有效的 Javascript XPath 查询在 PHP 中可以正常工作。不幸的是,我无法控制输入 DTD,所以现在我必须研究一种方法来克服这个问题,或者找到一个即使没有有效 DTD 也能工作的解决方案。