我正在尝试检索"名称","价值"和"说明"具有特定处理程序的每个节点的属性。
我专门寻找名为" 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>
}
答案 0 :(得分:1)
您正在阅读的文件与您想的不同。
使用Directory.GetCurrentDirectory
检查实际目录是什么,应用程序在哪里查找。并使用Directory.SetCurrentDirectory
或绝对或相对路径指定要查看的位置。
答案 1 :(得分:0)
感谢您提供完整的代码。也许我错过了什么。我试了一下,一切似乎都运转正常。您是否已逐步完成它以确定运行它时缺失值的任何公分母?
以下是我的结果: