0

我真的需要你的帮助。

我想从内容看起来像这样的 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 文件,我需要保持我的应用程序更新。

我的最后一个“解决方案”有点好......但不幸的是加载时间会杀死整个系统。它是一个数组,用于查找 id 的行。

if(File.ReadLines(path).Skip(counterarray).Take(1).First().Contains(articlecode))
{
if not found - counter+=1;
if found - show...
}

希望你这次能帮助我!

4

2 回答 2

0

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

于 2015-10-18T16:58:58.667 回答
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();
于 2015-10-18T17:02:23.223 回答