XML 读取不舒服的值
XML read uncomfortable values
我真的需要你的帮助。
我想从一个 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>
我想通过搜索菜单 ID 获取 Text_D 内容。
我现在尝试了很多方法,我需要阅读它,因为其他应用程序会覆盖这个 xml 文件,我需要保持我的应用程序更新。
我的最后一个 "solution" 还不错...但不幸的是加载时间会杀死整个系统。找id的那一行是一个数组
if(File.ReadLines(path).Skip(counterarray).Take(1).First().Contains(articlecode))
{
if not found - counter+=1;
if found - show...
}
这次希望你能帮帮我!
如果 XDocument 在您的平台上可用,请考虑使用它,这会将整个文件加载到分析树中的内存中,并允许对其执行 Linq 查询,或者 XmlReader/XmlWriter 如果您想要更精细的控制
使用 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();
我真的需要你的帮助。
我想从一个 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>
我想通过搜索菜单 ID 获取 Text_D 内容。 我现在尝试了很多方法,我需要阅读它,因为其他应用程序会覆盖这个 xml 文件,我需要保持我的应用程序更新。
我的最后一个 "solution" 还不错...但不幸的是加载时间会杀死整个系统。找id的那一行是一个数组
if(File.ReadLines(path).Skip(counterarray).Take(1).First().Contains(articlecode))
{
if not found - counter+=1;
if found - show...
}
这次希望你能帮帮我!
如果 XDocument 在您的平台上可用,请考虑使用它,这会将整个文件加载到分析树中的内存中,并允许对其执行 Linq 查询,或者 XmlReader/XmlWriter 如果您想要更精细的控制
使用 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();