如何在XmlDocument中过滤Xml数据

时间:2015-11-26 04:01:05

标签: c# xml xmldocument

如果我的过滤器值agentDBIDs / DBID值= 103,我如何获得CfgGroup / DBID值?

<?xml version="1.0" encoding="Windows-1252"?>
<ConfData>
  <CfgAgentGroup>
    <CfgGroup>
      <DBID value="109" />
      <tenantDBID value="1" />
      <name value="group1" />
      <contractDBID value="0" />
    </CfgGroup>
    <agentDBIDs>
      <DBID value="103" />
      <DBID value="994" />
    </agentDBIDs>
  </CfgAgentGroup>
  <CfgAgentGroup>
    <CfgGroup>
      <DBID value="110" />
      <tenantDBID value="1" />
      <name value="group2" />     
      <contractDBID value="0" />
    </CfgGroup>
    <agentDBIDs>
      <DBID value="102" />
      <DBID value="103" />
      <DBID value="1009" />
      <DBID value="1010" />
      <DBID value="1011" />
      <DBID value="1012" />
      <DBID value="1013" />
      <DBID value="1014" />
      <DBID value="1015" />
      <DBID value="1016" />
      <DBID value="1017" />
      <DBID value="1018" />
      <DBID value="1019" />
      <DBID value="1020" />
    </agentDBIDs>
  </CfgAgentGroup>
</ConfData>

我可以过滤agentDBIDs / DBID值,但我不知道如何获取其CfgGroup / DBID值。这是我到目前为止所做的:

XmlNodeList nodeList = AllAgentGroupXML.SelectNodes("/ns:ConfData/ns:CfgAgentGroup/ns:agentDBIDs/ns:DBID", nsMgr); 

foreach (XmlNode abc in nodeList) 
{ 
  if (abc.Attributes["value"].Value.ToString() == "103")
    Console.WriteLine(abc.Attributes["value"].Value.ToString());
}

*注意:ns = namespace,nsMgr = XmlNamespaceManager

更新

使用与上面相同的XML,有没有办法搜索特定的agentDBID / DBID值并返回其CfgGroup / DBID值?如何使用where子句?

UPDATE2: 根据上面的XML,如果我的搜索值= 994(指代agentDBID / DBID值),如何获取下面的XML数据部分?

<CfgAgentGroup>
   <CfgGroup>
      <DBID value="109" />
         <tenantDBID value="1" />
         <name value="group1" />
         <contractDBID value="0" />
    </CfgGroup>
      <agentDBIDs>
         <DBID value="103" />
         <DBID value="994" />
      </agentDBIDs>
 </CfgAgentGroup>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这将为您提供CfgGroup / DBID值。使用命名空间“System.Xml”。在这种情况下,如果它是103(agentDBIDs / DBID值),我打印了CfgGroup / DBID值。

$("#breadcrumbContainer").append('<i class="fa fa-smile-o"/>');