XML选择单个节点并遍历它

扎克

我在遍历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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章