在有效的 PHP query() XPath | 中转换 Javascript XPath规范化 JS XPath --> PHP
这是Javascript中有效的XPath:
id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
这变成了有效的PHP XPath,可以与DOMXPath->query()一起使用
//*[@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,则有效的Javascript XPath查询在PHP中工作正常(@Dimitre Novatchev在评论中提到了这一点,但忽略了重要性)。不幸的是,我无法控制输入DTD,所以现在我必须研究一种方法来克服这个问题,或者找到一个即使没有有效的DTD也能工作的解决方案。