我在遍历XML节点时遇到一些问题。
首先,这是XML文件的常规格式:
<Config>
<Facilities>
<Facility>
<ID>1</ID>
<Name>Facility Name</Name>
<Profiles>
<Profile>
<Name>Value</Name>
<Item2>Value</2>
</Profile>
<Profile>
<Name>Another Value</Name>
</Profile>
</Profiles>
</Facility>
<Facility>
<ID>2</ID>
<Name>Facility Name</Name>
<Profiles>
<Profile>
<Name>Value</Name>
</Profile>
</Profiles>
</Facility>
</Facilities>
</Config>
这是我正在使用的代码:
XmlDocument configFile = new XmlDocument();
configFile.Load(CONFIG_FILE);
XmlNodeList nodeList = configFile.SelectNodes("/Config/Facilities/Facility[ID[text()='" + facilityID + "']]/Profiles/Profile");
foreach (XmlNode no in nodeList)
{
Console.WriteLine(no["Name"].InnerText);
//myList.Items.Add(no["Name"].InnerText);
}
基本上,我想遍历设施并选择具有特定ID的设施(此ID源自facilityID
我之前在代码中设置的ID ……是的,我已经检查过,它的设置正确)。然后,我想浏览与该设施相关联的配置文件,并遍历它们。我希望能够将每个要素中的所有要素都<Profile>
视为适用。
但是,当我执行此代码时,它在调试控制台中未返回任何内容。
我不确定您的文件中是否存在此文件,但是在发布的示例中似乎存在XML错误。
<Item2>Value</2>
如果删除它,则可以正确看到预期的值。例如,如果我为设施ID使用值“ 1”,则会收到
Value
Another Value
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句