Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XDocument的XElement解析,远低于,重复3次_C#_Xml_Foreach - Fatal编程技术网

C# XDocument的XElement解析,远低于,重复3次

C# XDocument的XElement解析,远低于,重复3次,c#,xml,foreach,C#,Xml,Foreach,[编辑2] foreach (var x in d.Descendants("seg").Elements("value").Attributes().Some("modified") MessageBox.Show(x.Value); [编辑3] foreach (var x in d.Descendants("seg").Elements("value").Attributes().Where(x => x.Value == "modified")) MessageBox.S

[编辑2]

foreach (var x in d.Descendants("seg").Elements("value").Attributes().Some("modified")
    MessageBox.Show(x.Value);
[编辑3]

foreach (var x in d.Descendants("seg").Elements("value").Attributes().Where(x => x.Value == "modified"))
MessageBox.Show( x.Parent.Value);

使用
元素
而不是
子体

foreach (var x in d.Descendants("seg").Elements("value").Where(x => x.Attribute("key").Value == "modified"))
MessageBox.Show(x.Value);

较短的版本:

foreach (XElement x in myDoc.Descendants(ns + "seg").Elements(ns + "value"))           
    foreach (var z in x.Attributes())
        if (z.Value == "modified")      
            MessageBox.Show(x.Value);

哦,天哪,那太简单了。谢谢。我是一个ediot。这样你可以得到属性,但不能得到元素。耶。。。我找到了。虽然它和LINQ混在一起,但主要是foreach…啊。再次感谢您的评论。是的,这是一种灵巧的方式。但是有点难看,嗯?我变了一点。。。。对我同意你的看法。不太漂亮。
foreach (XElement x in myDoc.Descendants(ns + "seg").Elements(ns + "value"))           
    foreach (var z in x.Attributes())
        if (z.Value == "modified")      
            MessageBox.Show(x.Value);
foreach (XElement x in myDoc.Descendants(ns + "seg").Elements(ns + "value"))
    if (x.Attributes().Any(a => a.Value == "modified"))
        MessageBox.Show(x.Value);