当有两个或多个具有相同名称的节点C#

时间:2016-04-26 09:09:35

标签: c# xml

当你有多个同名节点时,有没有办法选择XML文件的特定节点?

例如,我想选择名称为IBAN的节点的值。但是,作为其他两个节点的孩子,我有两次。

我正在获取名称为IBAN的节点,当然它是第一个。

public string GetIBANValueFromXML(XmlDocument xmlDoc)
{
    string ibanValue = "";
    XmlNodeList xnList = xmlDoc.SelectNodes("/Element[@*]");

    if (xnList != null)
    {
        foreach (XmlNode xn in xnList)
        {
            XmlNode ibanNode = xn.SelectSingleNode("IBAN");
            if (ibanNode != null)
            {
                ibanValue = ibanNode.InnerText;
            }
        }
    }
    return ibanValue;
}

如果有一个干净的方法来完成这个?要使用此功能但要返回第二个IBAN节点值?

1 个答案:

答案 0 :(得分:0)

您可以使用XPath /Element/IBAN[2]选择名为IBAN的根元素的第二个Element子元素:

XmlNode ibanNode = xmlDoc.SelectSingleNode("/Element/IBAN[2]");
if (ibanNode != null) { ... }