Преобразование Javascript XPath в действительный запрос PHP ()XPath | нормализовать JS XPath --> PHP

Это допустимый XPath в Javascript:

id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]

И это превратилось в действительный PHP XPath для использования с DOMXPath -> запрос ()равен

//*[@id="priceInfo"]//div[@class="standardProdPricingGroup"]//span[1]
  1. знаете ли вы какие-либо библиотеки или пользовательские компоненты, которые уже выполняют это преобразование?
  2. знаете ли вы доступную документацию, в которой перечислены два синтаксических различия?

Меня больше всего беспокоит то, что может быть много различий, и я пытаюсь определить эти различия, и у меня есть проблемы с их выявлением.

Вопрос можно было бы поставить и по-другому:Поскольку Javascript может иметь разные допустимые форматы XPath, как их нормализовать для работы с PHP.

В одном из обновлений также упоминается, что функция id ()является допустимой XPath, если существует допустимое DTD, содержащее это определение. У меня нет власти над входным DTD, и если есть способ найти решение, которое работает без какого-либо конкретного DTD, это было бы здорово.

Обновление:

Я хочу преобразовать первый формат во второй с помощью алгоритма. Мой вклад первый, а не второй. Не могу изменить это.

Как указал @Nison Maël, 2-й формат действителен Javascript XPath, представленный здесь:http://jsbin.com/elatum/2/editэто, к сожалению, только усугубляет проблему «фрагментации» Javascript XPath.

@salathe указал, что действительный запрос Javascript XPath отлично работает в PHP, если задокументированный ввод имеет действительный DTD (@Dimitre Novatchev упомянул об этом в комментарии, но упустил из виду важность ). К сожалению, у меня нет контроля над входным DTD, поэтому теперь мне нужно найти способ преодолеть это или найти решение, которое работает даже без действительного DTD.

19
задан Kev 6 August 2012 в 22:43
поделиться