我有以下格式的数据: https://www.dropbox.com/s/osu4w634lnoy2pw/2.xml
在尝试解析时,我也想要所有的场元素。我能够获得表格下的所有元素,但不能在字段下。有人可以帮帮我吗?
我的代码如下:
XmlDocument doc = new XmlDocument();
doc.Load(@maploc);
XmlNodeList nodes = doc.DocumentElement.SelectNodes("/schema/table");
foreach (XmlNode node in nodes)
{
attribute1 = "";
attribute2 = "";
attribute3 = "";
try
{
attribute1 = node.Attributes["name"].Value;
attribute2 = node.SelectSingleNode("tabledefault").InnerText;
attribute3 = node.SelectSingleNode("invoke").InnerText;
}
catch(Exception ex)
{
//Nothing
}
if (node.HasChildNodes)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
foreach (XmlNode nodei in node.ChildNodes[i])
{
attribute4 = "";
attribute5 = "";
attribute6 = "";
try
{
attribute4 = node.Attributes["name"].Value;
attribute5 = node.SelectSingleNode("invoke").InnerText;
attribute6 = node.SelectSingleNode("dtype").InnerText;
catch (Exception ex)
{
//Nothing
}
}
}
}
...谢谢
答案 0 :(得分:1)
您的错误是:
for (int i = 0; i < node.ChildNodes.Count; i++)
{
foreach (XmlNode nodei in node.ChildNodes[i])
{
您正在迭代当前子节点的子节点(您将进入一个级别太深)。这是因为XmlNode
对其子女来说是一个可枚举的。
需要一个foreach
循环:
foreach (XmlNode nodei in node.ChildNodes)
{