2015-04-06 2 views
0

XML мало и выглядит, как показано нижеСинтаксический XML с пространством имен, используя DOM

<?xml version="1.0" encoding="UTF-8"?><userdetails xsi:schemaLocation="urn:MyNamespace loginasp.xsd" xmlns="urn:MyNamespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><username>909</username><password>madhuri1</password></userdetails> 

Для разбора этого XML я написал код, приведенный ниже.

XmlDocument doc = new XmlDocument(); 
       XmlDocument xDoc = new XmlDocument(); 
       xDoc.LoadXml(s);//S contains above XML 
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); 
        nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
string emp_id = xDoc.SelectSingleNode("/userdetails/username", nsmgr).InnerText; 

Я не могу выбрать одного УЗЕЛ xDoc.SelectSingleNode("/userdetails/username", nsmgr) является null Есть ли какие-то еще мне нужно сделать, чтобы разобрать XML или Мой XML является wrong.Without имен он работает отлично

+0

Почему -1 есть что-то не так ?? –

+0

поймать эту ссылку http://stackoverflow.com/questions/18250671/how-to-read-single-node-value-from-xml-file –

+0

кому-то ответить на этот вопрос ранее –

ответ

1

Вы должны добавить комментарий default namespace в XmlNamespaceManager.

nsmgr.AddNamespace("t", "urn:MyNamespace"); 

И затем использовать это пространство имен в вашем XPath Query

string emp_id = xDoc.SelectSingleNode("/t:userdetails/t:username", nsmgr).InnerText; 
Смежные вопросы