C#没有正确读取XMLNodeList

时间:2017-08-29 13:55:31

标签: c# xml nodes

我正在尝试检索"名称","价值"和"说明"具有特定处理程序的每个节点的属性。

我专门寻找名为" VariantData"的每个节点。有类型=" eContact"。然后,对于每个项目,我查看子行节点并检索每个节点的名称,值和描述值。

问题是某些项目被检索,而其他项目则没有。有人可以帮助弄清楚为什么有些物品没有出现? (见最后的结果图片)

完整的XML位于此处: XML I'm Using

这是我的C#代码(我使用Razor语法,所以忽略HTML)

@using System.Xml;
@{
  string eContactName = "", eContactValue = "", eContactDescription = "";

  //Create The XML Document
  XmlDocument xDoc = new XmlDocument();

  //Load the XML File
  xDoc.Load("D137506.xml");  //<!-- This is the exact same XML file in the link above (PasteBin)

  //Create a NodeList that gathers every "Row" from a "VariantData Type='eContact'" Node
  XmlNodeList xmlList = xDoc.SelectNodes("System/Components/Component/VariantData[@Type='eContact']/Row");

  <table>
      <thead>
          <tr>
              <th>Name</th>
              <th>Value</th>
              <th>Description</th>
          </tr>
      </thead>
      <tbody>

          @{
              foreach (XmlNode x in xmlList)
              {
                  eContactName = Convert.ToString(x.Attributes["Name"].Value);
                  eContactValue = Convert.ToString(x.Attributes["Value"].Value);
                  eContactDescription = Convert.ToString(x.Attributes["Description"].Value);

                  <tr>
                      <td>@eContactName</td>
                      <td>@eContactValue</td>
                      <td>@eContactDescription</td>
                  </tr>
              }
          }
      </tbody>
  </table>
}

enter image description here

2 个答案:

答案 0 :(得分:1)

您正在阅读的文件与您想的不同。

使用Directory.GetCurrentDirectory检查实际目录是什么,应用程序在哪里查找。并使用Directory.SetCurrentDirectory或绝对或相对路径指定要查看的位置。

答案 1 :(得分:0)

感谢您提供完整的代码。也许我错过了什么。我试了一下,一切似乎都运转正常。您是否已逐步完成它以确定运行它时缺失值的任何公分母?

以下是我的结果:

https://developer.android.com/things/preview/releases.html