如何在不知道字段或其他内容的情况下从c#中的xml doc获取属性值?

时间:2014-07-04 04:27:17

标签: c# .net

这是我的xml文档

<Names>
    <Name1 type="M" name = "John">
    </Name1>
</Names>

我希望解析整个文档,以便获取Name1,类型,值,名称及其值

2 个答案:

答案 0 :(得分:0)

使用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 :(得分:0)

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