如果我的過濾器值agentDBIDs/DBID值= 103,如何獲取CfgGroup/DBID值?如何過濾XmlDocument中的Xml數據
<?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 =命名空間,nsMgr =的XmlNamespaceManager
更新:
使用相同的XML如上,是有什麼方法搜索特定的agentDBID/DBID值並返回其CfgGroup/DBID值?如何使用where
子句?
UPDATE2: 基於上面的XML,我怎麼能得到下面,如果我的搜索值= 994(指agentDBIDs/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>
任何想法?
,如果你用同樣的方法,只是不同的XPath什麼問題:'/ NS:ConfData/NS:CfgAgentGroup/NS:CfgGroup/NS:DBID' – har07
嗨@ har07,沒有價值 – YWah
我不請參閱XML中的任何名稱空間。你不需要'ns'前綴和'XmlNamespaceManager'。 –