Как мне решить проблему
Reference to undeclared namespace prefix: '%s'
с реализацией Microsoft msxml?
I ' m, используя XML-канал с правительственного веб-сайта, который содержит значения, которые мне нужно проанализировать. Xml содержит пространства имен:
-
1.0351
CAD
USD
Bank of Canada noon rate
2011-05-09T12:15:00-04:00
Выполнение запроса XPath:
/rdf:RDF/item/cb:statistics/cb:exchangeRate/cb:targetCurrency
завершается ошибкой:
Reference to undeclared namespace prefix: 'rdf'
Изменить :
Если я редактирую исходный XML, чтобы удалить любое использование пространств имен:
-
1.0351
CAD
USD
Bank of Canada noon rate
2011-05-09T12:15:00-04:00
Запрос / rdf / item / statistics / exchangeRate / baseCurrency
не дает сбоев и возвращает узлы:
CAD
Как мне заставить Microsoft XML работать с пространствами имен?
У меня есть попытался добавить SelectionNamespaces к объекту DOMDocument:
doc.setProperty('SelectionNamespaces', 'xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cb="http://www.cbwiki.net/wiki/index.php/Specification_1.1"');
Теперь запрос xpath не завершается ошибкой, но он также не возвращает никаких узлов:
nodes = doc.selectNodes('/rdf:RDF/item/cb:statistics/cb:exchangeRate/cb:targetCurrency');