【发布时间】:2018-11-20 14:53:00
【问题描述】:
这是我的示例 XML 文件:
<Main>
<Person>
<Name>Božena</Name>
<Surname>Němcová</Surname>
<Gender>Female</Gender>
<OrderNum>18</OrderNum>
<BirthDate>04.02.1820</BirthDate>
</Person>
<Person>
<Name>Jan</Name>
<Surname>Žižka</Surname>
<Gender>Male</Gender>
<OrderNum>7</OrderNum>
<BirthDate>19.09.1360</BirthDate>
</Person>
<Person>
<Name>Che</Name>
<Surname>Guevara</Surname>
<Gender>Male</Gender>
<OrderNum>27</OrderNum>
<BirthDate>14.06.1928</BirthDate>
</Person>
<Person>
<Name>Antonie</Name>
<Surname>de Saint-Exupéry</Surname>
<Gender>Male</Gender>
<OrderNum>15</OrderNum>
<BirthDate>29.06.1900</BirthDate>
</Person>
</Main>
这是一个代码,我想用它来获取 Name 元素的所有值的列表:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("PersonWrite.xml");
XmlNodeList data = xmlDoc.SelectNodes("Main/Person/Name");
问题是我只从第一个 Person 元素中获取值。
【问题讨论】:
-
我无法重现这一点。在问题中加载 XML 后,
SelectNodes的结果是一个包含 4 个元素的列表。检查您实际使用data的方式,以及PersonWrite.xml是否真的包含您认为它包含的内容。 -
代码的继续只有
Console.WriteLine(data.Count);,它给出了“1”。 -
那么
PersonWrite.xml不包含您认为它包含的内容。检查Path.GetFullPath("PersonWrite.xml")的结果和/或在.Load中提供完整路径,并验证文件不包含可能会以某种方式破坏工作的不可打印或控制字符。 Fiddle to verify.
标签: c# xml xmldocument