Недопустимая маркерная ошибка при использовании XPath с пространствами имен

У меня есть следующий XML:


    
        1
        ADM
    
    
        2
        USR
    

Что было бы, выражение XPath для получения всего roleNames (ADM, USR) похожи?

Это не работает:

ns:response/ns:return/ax:roleName ns http://example.com ax http://example.com/xsd

Когда я использую его, я получаю исключение

'ns:response/ns:return/ax:roleName не уточнено топор http://example.com http://example.com/xsd' имеет недопустимый маркер.

1
задан Pops 30 July 2012 в 20:07
поделиться

2 ответа

Если вы используете метод XmlDocument.SelectNodes , вы должны использовать «ns: response / ns: return / ax: roleName» как XPath и добавить пространства имен в ] XmlNamespaceManager :

man.AddNamespace("ns", "http://example.com");
man.AddNamespace("ax", "http://example.com/xsd");
var set = doc.SelectNodes("ns:response/ns:return/ax:roleName", man);
2
ответ дан 2 September 2019 в 22:50
поделиться

Я думаю, вам просто нужно указать incex ns:return, поскольку их несколько:

ns:response/ns:return[1]/ax:roleName
0
ответ дан 2 September 2019 в 22:50
поделиться
Другие вопросы по тегам:

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