#c# #.net
#c# #.net
Вопрос:
это мой XML-документ
<Names>
<Name1 type="M" name = "John">
</Name1>
</Names>
и я хочу проанализировать документ, чтобы получить Name1, type, его значение, name и его значение
Комментарии:
1. не зная поля? вы имели в виду, что без запроса для узла (Name1) вам нужно присвоить значение (тип, имя)? или вы имеете в виду все внутренние узлы, не зная имени? т. Е. получить все узлы внутри родительского узла?
Ответ №1:
Используйте класс XmlDocument и используйте его свойство childNodes / Attributes.
var xml = "<Names><Name type="M" name="John"></Name></Names>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var nodes = doc.DocumentElement.ChildNodes;
foreach (XmlNode node in nodes)
{
Console.WriteLine(node.Name " : " node.Value);
foreach (XmlAttribute attr in node.Attributes)
{
Console.WriteLine(attr.Name " : " attr.Value);
}
}
Вы можете продолжить изучение отсюда, например, метод getElementsByTagName или рекурсивно исследовать дочерние узлы..
Комментарии:
1. привет @AkhilSivanandan! пожалуйста, опубликуйте свой ответ с пометкой «Обновить» в вашем существующем сообщении! чтобы другие люди тоже знали это!
Ответ №2:
string xml = @"
<parent>
<child>
<nested />
</child>
<child>
<other>
</other>
</child>
</parent>
";
XmlReader rdr = XmlReader.Create(new System.IO.StringReader(xml));
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Element)
{
Console.WriteLine(rdr.LocalName);
}
}
Результатом вышесказанного будет
parent
child
nested
child
other
Комментарии:
1. эй, абишек, я не это ищу.