2015-04-24 2 views
-3

У меня есть код XML, и я хочу, чтобы получить значение действия в:Почему делает мое возвращение xmlCode ничего

<msg t='sys'><body action='rndK' r='-1'><k>randomKey</k></body></msg> 

Я пробовал:

xmlCode.ChildNodes[0].Attributes["action"] 

который не выводит ничего.

+0

Исправлена ​​ошибка –

+0

Правильная ошибка. Кажется, что вам нужно удалить вопрос, если проблема была исправлена, так как вы действительно не представляете каких-либо реальных подробностей о том, что проблема: «Что не выводит ничего» ничего не значит из нас – MethodMan

+0

проблема в том, что он ничего не возвращает, когда он должен получить action = 'rndK' –

ответ

0

Делая небольшую домашнюю работу, я могу проверить свой код и найти проблему:

var a = XElement.Parse(@"<msg t='sys'><body action='rndK' r='-1'><k>randomKey</k></body></msg>"); 
var xmlNode = a.ToXmlDocument(); 

Вышеуказанное как раз, так что я вновь создать XMLnode. ToXmlDocument можно найти here.

Тогда мы имеем следующее ...

var msg = xmlNode.ChildNodes[0]; 

msg Ваш первый дочерний узел, если бы вы отделенный ее, как и я, то вы бы увидели его в отладчике. Остальное следует, естественно ...

var body = msg.ChildNodes[0]; 
var action = body.Attributes["action"]; 
string actionValue = action.Value; 

Причина, почему ваш код: xmlCode.ChildNodes[0].Attributes["action"] возвращает ничего является msg узел не содержит атрибут action и, следовательно, вы не получите ничего в результате.

Смежные вопросы