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 ?
Я не знаю, почему вы получили эту ошибку, но вы можете изменить 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) со свойством, используемым в оценке.
Я просто не понимаю, почему любой тип
не работал с строковым значением
.