【发布时间】:2012-02-18 19:07:55
【问题描述】:
我对 XML 有一些困惑!我的 xml 文件如下所示
<rootnode>
<childnode id="1" quantity="3" type="auto">0000-000</childnode>
<childnode id="2" quantity="3" type="prop">1111-111</childnode>
<childnode id="2" quantity="3" type="toy">2222-222</childnode>
<childnode id="3" quantity="3" type="auto">0000-000</childnode>
</rootnode>
我正在创建一个函数,它将两个参数作为属性和属性值的数组。现在我有点困惑如何比较节点的每个属性?看看我的代码
ComparableAttributes = new string[]{ "id","quantity"};
ComparableAttributesValue = new string[]{ "2","3"};
根据我的要求,我必须有两个节点(第二个和第三个)。因为属性和属性值与该特定节点匹配!
public List<XmlNode> getXmlNodeList()
{
XmlDocument Xdoc = new XmlDocument();
Xdoc.Load(Filename);
List<XmlNode> xmlList = new List<XmlNode>();
foreach (XmlNode node in Xdoc.SelectNodes("//" + Childnode))
{
for (int i = 0; i < ComparableAttributes.Count() - 1; i++)
{
if (node.Attributes[ComparableAttributes[i]].Value == ComparableAttributesValue[i] &&
node.Attributes[ComparableAttributes[i + 1]].Value == ComparableAttributesValue[i + 1])
xmlList.Add(node);
}
}
return xmlList;
}
它只给我两个值的输出......!如果我想让它动态,那么我该如何迭代循环?我的意思是我怎么能提出条件!我只是有点困惑!
【问题讨论】: