我想阅读下面的XML并按以下顺序打印输出。你可以帮助查询?使用嵌套循环的Linq XML查询
10 Subject1 A1 10 Subject2 B1 10 Subject3 C1 20 Subject1 B2 20 Subject2 A1 20 Subject3 C2
预先感谢
我想阅读下面的XML并按以下顺序打印输出。你可以帮助查询?使用嵌套循环的Linq XML查询
10 Subject1 A1 10 Subject2 B1 10 Subject3 C1 20 Subject1 B2 20 Subject2 A1 20 Subject3 C2
预先感谢
这里的示例如何可以查询以你想要的形式:
XDocument doc = XDocument.Load("test.xml");
var query = from l in doc.Descendants("L1")
let id = l.Attribute("id").Value
from subject in l.Descendants("Subject")
select new
{
Id = id,
SubjectName = (string)subject.Attribute("SubjectName"),
Score = (string)subject.Attribute("Score")
};
foreach (var result in query)
{
Console.WriteLine(result);
}
输出:
{ Id = 10, SubjectName = Subject1, Score = A1 }
{ Id = 10, SubjectName = Subject2, Score = B1 }
{ Id = 10, SubjectName = Subject3, Score = C1 }
{ Id = 20, SubjectName = Subject1, Score = B2 }
{ Id = 20, SubjectName = Subject2, Score = A1 }
{ Id = 20, SubjectName = Subject3, Score = C2 }
对于更多_inline madness_可以使用'(query).ToList()。ForEach(item => Console.WriteLine item))',用你建议的linq查询替换'query'。 ;) –
谢谢先生!非常感谢 – user219628
你好,请建议应该做些什么改变才能在输出中显示日期。谢谢 – user219628
我不明白你怎么指望'Subject1 C1'出来的是XML的? –
对不起,主题3有拼写错误。我已经能够加载Xdocument并用XElement ID声明var,但从未使用过Linq。我可以在SQL服务器上做到这一点,但问题是我失去了很多的格式,因此试图使用C# – user219628