Мне нужно создать парсер XML xPath. Все синтаксический анализ должен происходить на стороне клиента (с использованием JavaScript). Я создал javascript, который делает это, и все выглядит нормально, пока не вступят в игру пространства имен по умолчанию. Я просто не могу запросить XML, который имеет пространство имен по умолчанию.
Я создал пример кода на скрипке. В xmlString - строка XML, полученная с сервера. В xPathString выполняется запрос к полученному XML.
Вот несколько сценариев:
- http://jsfiddle.net/BF34q/1/ - без пространств имен - все работает ОК
- http://jsfiddle.net/BF34q/2/ - добавлено пространство имен ns. элемент имеет префикс ns: xPath использует этот префикс - ОК
- http://jsfiddle.net/BF34q/3/ - используется пространство имен по умолчанию - не уверен, как настроить xPathString.
Обратите внимание, что другие будут использовать этот синтаксический анализатор, поэтому я действительно хотел бы избежать таких решений, как
var xPathString = "//*[local-name()='book']";
и разрешите им анализировать его, используя простые выражения xPath. Интересно, можно ли назначить префикс пространства имен по умолчанию в javascript?
Примечание. Пример, приведенный в скрипте, не будет работать в IE.