У меня есть XML-файл, как этотЧто представляет собой Internet Explorer эквивалент createNSResolver?
<a:books xmlns:a="ans">
<a:book>
<a:id> 1 </a:id>
<a:title>The first book</a:title>
</a:book>
</a:books>
По умолчанию IE распознает префиксы от самого XML, когда я делаю запрос XPath на нем
x.selectNodes('//a:book').length //gives 1, as desired
Но если я скажу ему использовать язык выбора XPath для совместного использования с другими браузерами, тогда он перестает распознавать префиксы, используемые в исходном XML.
x.setProperty('SelectionLanguage', 'XPath')
x.selectNodes('//a:book').length
//throws an error: "Referência a um prefixo de espaço para nome não declarado: 'a'."
// I would translate it as "reference to an undeclared namespace prefix".
Я знаю, что могу использовать x.setProperty('SelectionNamespaces', "xmlns:a='ans'")
, чтобы остановить ошибку, но есть способ программно получить a->ans
отношение, как я могу с помощью x.createNSResolver(x)
в других браузерах?
Просто, чтобы подтвердить: вы говорите, я должен пройти через 'doc.documentElement.attributes' и рыбы всех' Xmlns: something' префиксов? – hugomg
Да, вот что я предложил. Я отредактирую сообщение и добавлю пример кода. –