XML读取不舒服的值

时间:2015-10-18 14:49:43

标签: c# xml readxml writexml

我真的需要你的帮助。

我想从XML文件中读取内容似乎是

的数据
<row>
    <Menue>949</Menue>
    <Text_D>Sonstige 49</Text_D>
    <Text_C>特别餐 49</Text_C>
    <Preis3>49</Preis3>
</row>
<row>
    <Menue>950</Menue>
    <Text_D>Sonstige 50</Text_D>
    <Text_C>特别餐 50</Text_C>
    <Preis3>50</Preis3>
</row>

我想通过搜索Menue id来获取Text_D内容。 我现在尝试了很多方法,我需要阅读它,因为其他应用程序将覆盖此xml文件,我需要更新我的应用程序。

我的上一个&#34;解决方案&#34;有点好......但不幸的是加载时间会杀死整个系统。这是一个用于查找id行的数组。

if(File.ReadLines(path).Skip(counterarray).Take(1).First().Contains(articlecode))
{
if not found - counter+=1;
if found - show...
}
希望你这次可以帮助我!

2 个答案:

答案 0 :(得分:0)

为方便考虑使用XDocument,如果它在您的平台上可用,它将整个文件加载到解析树的内存中并允许对其执行Linq查询,或者如果您想要更精细的控制则使用XmlReader / XmlWriter

答案 1 :(得分:0)

将Linq用于XML:

var doc = XDocument.Load(path);
string textD =
    (from row in doc.Root.Elements("row")
     let id = row.Element("Menue").Value
     where id == "949"
     select row.Element("Text_D").Value).FirstOrDefault();