как убрать пространства имен с e4x? - PullRequest
3 голосов
/ 25 марта 2010

У меня есть произвольный XML-документ, предоставленный URL-адресом. У меня также есть xpath-подобные выражения.

var xml = <doc><node1><node2><node3>some value</node3></node2></node1></doc>;
var path = "node1.node2.node3";

Мне нужно проверить, действителен ли вышеуказанный путь в XML. Я пытался сделать это, используя eval и E4X.

var value = eval("xml."+path);

Тем не менее, мой настоящий XML-документ имеет пространства имен, которые мешают. Я не знаю пространства имен раньше времени или не знаю, что это такое.

Есть ли способ убрать все пространства имен раньше времени? Есть ли лучший способ сделать это?

Спасибо!

1 Ответ

3 голосов
/ 25 марта 2010

В E4X вы можете использовать подстановочный знак для префиксов пространства имен. Поэтому, если вы преобразуете node1.node2.node3 в *::node1.*::node2.*::node3, ваш eval будет совпадать, игнорируя пространства имен.

...