比较一个xml文件中的字符串怎么样?

时间:2015-06-12 20:59:07

标签: xml c#-4.0 xml-parsing

我对此很陌生并且对此深感不安 我有一个XML文件,如:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<Client>
            <add key="City" value="Amsterdam" />
            <add key="Street" value="CoolSingel" />
            <add key="PostalNr" value="1012AA" />
            <add key="CountryCode" value="NL" />

我试图读取并比较XML文件中的值 这样我也不会锁定文件,如下所示:

System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
FileStream xmlFile = new FileStream("c:\clients.xml",FileMode.Open,FileAccess.Read, FileShare.Read);
xmlDoc.Load(xmlFile);

到目前为止很好,但我无法真正从中读取

if (xmlDoc.GetElementsByTagName("CountryCode")[0].Attributes[0].Value=="NL") {// do stuff}

作为一个新手在这里尝试了其他几件事,但它不会确定我在这里做错了什么,有没有人看到它?

1 个答案:

答案 0 :(得分:1)

您的代码无效,因为CountryCode 是标记名称,它是属性值

由于您不熟悉此内容,请了解较新的API XDocument,以替换使用旧版API XmlDocument的方法。例如:

FileStream xmlFile = new FileStream(@"c:\clients.xml",FileMode.Open,FileAccess.Read, FileShare.Read);
XDocument doc = XDocument.Load(xmlFile);

//get <add> element having specific key attribute value :
var countryCode = doc.Descendants("add")
                     .FirstOrDefault(o => (string)o.Attribute("key") == "CountryCode");
if(countryCode != null)
    //print "NL"
    Console.WriteLine(countryCode.Value);