xpath with dom document

I'm trying the find a xml node with xpath query. but i cannot make it working. In firefox result is always "undefined" and chrome throws a error code.

<script type="text/javascript">

var xmlString = '<form><name>test</name></form>';
var doc = new DOMParser().parseFromString(xmlString,'text/xml');

var result = doc.evaluate('/form/name', doc, 
                          null, XPathResult.ANY_TYPE, null);

alert(result.stringValue);

</script>

what's wrong with this code ?

10
задан sideshowbarker 24 September 2015 в 17:45
поделиться

1 ответ

Я не знаю, почему вы получили эту ошибку, но вы можете изменить XPathResult.ANY_TYPE на XPathResult.STRING_TYPE и все будет работать (проверено в фаерфоксе 3.6).

См.:

var xmlString = '<form><name>test</name></form>';
var doc = new DOMParser().parseFromString(xmlString,'text/xml');
var result = doc.evaluate('/form/name', doc, null, XPathResult.STRING_TYPE, null);
alert(result.stringValue); // returns 'test'

См. в jsfiddle.


ПОДРОБНОСТИ:

4-й параметр метода evaluate — это целое число, в котором вы указываете, какой результат вам нужен (ссылка). Существует множество типов, включая целые числа, строки и любые другие типы. Этот метод возвращает XPathResult, который имеет множество свойств.

Вы должны сопоставить свойство (numberValue, stringValue) со свойством, используемым в оценке.

Я просто не понимаю, почему любой тип не работал с строковым значением.

10
ответ дан 3 December 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: