У меня очень простой вопрос, на который я не могу найти ответ.
Я хочу сжать два оператора XPath (которые получают значения атрибутов).Я узнал об операторе |
, узнав, как он возвращает наборы узлов.
var getdata = xmldoc.evaluate
(
'/foo/bar[@world=\''+hello+'\']/child::*/attribute::name
|/foo/bar[@world=\''hello+'\']/child::*/attribute::id',
xmldoc, null, XPathResult.ANY_TYPE, null
);
Всем, кто интересуется, нет, я не форматирую свои строки оценки таким образом ... хотя, мне сейчас нравитсячто я его напечатал.В любом случае, вот как я это проверил.
alert(getItemData.iterateNext().childNodes[0].nodeValue);
Это работает!Но он возвращает только первый.При написании этого я просто попробовал .length
и сделал прорыв ... он считает только один предмет.Я был обманут о понятии |
?Как я могу получить набор и затем просмотреть его?
XML-документ, как и было запрошено.
<?xml version="1.0" encoding="ISO-8859-1"?>
<foo>
<bar world="hello" id="1">
<subbar name="item1" id="2">
</subbar>
</bar>
<bar world="bye" id="3">
<subbar name="item2" id="4">
</subbar>
</bar>
</foo>
Редактировать: в настоящее время я использую функцию, которая захватывает элемент, а не атрибут,но мне бы очень хотелось узнать другой путь.Если то, что я делаю, не лучший способ.