分别显示每个XML属性

时间:2012-03-15 16:48:16

标签: c#

基本上,我有一个小问题试图在播放它时显示每个属性,它似乎显示标题中的所有属性。我认为你可以通过编写像

这样的方法采用与数组相同的方法
listView1.Items.Add(items[0]);

我完全不熟悉这一点,所以如果这个问题听起来很无趣,我就会大肆宣传。

xml文件:

<books>
  <type>
    <price>2.50</price>
    <title>Harry</title>
  </type>
  <type>
    <price>2.70</price>
    <title>bob</title>
  </type>
</books>

代码:

XmlTextReader reader = new XmlTextReader("XMLfile1.xml");
XmlNodeType type;

while(reader.Read())
{
  type = reader.NodeType;
  if (type == XmlNodeType.Element)
  {
    if (reader.Name == "title")
    {
      reader.Read();
      listView1.Items.Add(reader.Value);
    }
  }
}
reader.Close();

1 个答案:

答案 0 :(得分:1)

试试这个:

XDocument document = XDocument.Load(@"XMLfile1.xml");
foreach (var titleElement in document.Descendants("title"))
{
    listView1.Items.Add(titleElement.Value);
}

或者:

XDocument document = XDocument.Load(@"XMLfile1.xml");
foreach (var titleElement in document.Root.Elements("type").Select(x => x.Element("title")))
{
    listView1.Items.Add(titleElement.Value);
}