Получить первый узел, используя E4X со смешанными пространствами имен? - PullRequest
1 голос
/ 21 марта 2011

Рассмотрим фрагмент XML с несколькими пространствами имен:

<meal xmlns="urn:hl7-org:v3">
    <veg id="7" />
    <lunch id="123">
        <veg id="990" />
    </lunch>
    <dinner id="324">
         <veg id="111" />
    </dinner>
 </meal>

Используя JavaScript E4X, как вы можете явно выбрать свойство id первого veg узла?

Это важно для явно включает также все пространства имен .Это причина моего синтаксиса ..*:: ниже.Я понимаю, что здесь используется неправильный оператор.

Я пробовал это, к сожалению, он получает ВСЕ значения идентификатора узла veg:

var veg = meal..*::veg.@id.toString()
//currently gets 7990111

Как я могу получить значение 7 * * 1016

Ответы [ 3 ]

1 голос
/ 21 марта 2011

var veg = meal..*::veg[0].@id.

1 голос
/ 21 марта 2011
var meal = // xml;
var veg = meal..*::veg.@id[0];
1 голос
/ 21 марта 2011

Попробуйте это: var veg = meal..*::veg[position()=1].@id.toString()

veg[position()=1] сообщает XPath, что вы хотите использовать вегетарианский узел на первой позиции. Я просто завершил ваше первоначальное выражение xpath.

...