gpt4 book ai didi

c# - 为什么这个 linq 查询只返回第一个属性?

转载 作者:太空宇宙 更新时间:2023-11-03 22:04:59 25 4
gpt4 key购买 nike

我有一个复杂的 xml 文件,在不同的级别可能存在以下部分:

<ChrNote>
<note>The appropriate character is:</note>
</ChrNote>
<ChrDef>
<extension char="A">initial</extension>
<extension char="D">subsequent</extension>
<extension char="G">subsequent delayed</extension>
<extension char="S">sequel </extension>
</ChrDef>
...

这是我用来构建文本文件的代码片段:

var lv1s = from lv1 in XMLDoc.Descendants("chapter").DescendantsAndSelf()
select new
{
SChar = (string)lv1.Element("ChrNote") ?? "",
SCharDef = (string)lv1.Element("ChrDef") ?? "",
//Returns only first attribute ..?
CharLetter = (lv1.Element("ChrDef") == null ? "" :
(string)(lv1.Element("ChrDef")
.Element("extension")
.Attribute("char")) ?? "")
};

问题是上面的查询只返回元素“extension”的第一个属性(“A”)。我没有 linq 方面的经验,我们将不胜感激。

最佳答案

(我知道你的问题说“只返回第一个属性”,但那里只有一个属性——所以我改为回答你的隐含问题。)

它只返回第一个扩展元素,因为您正在使用 Element("extension")。如果您改用 Elements("extension"),您会得到其他的。

查看文档:

http://msdn.microsoft.com/en-us/library/system.xml.linq.xcontainer.element.aspx
http://msdn.microsoft.com/en-us/library/bb348975.aspx

关于c# - 为什么这个 linq 查询只返回第一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772637/

25 4 0
文章推荐: css -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com