C# 读取不带cdata的xml元素值?

C# 读取不带cdata的xml元素值?,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我有一个简单的xml: <AllBands> <Band> <Name ID="1234" started="1962">Beatles<![CDATA[lalala]]></Name> <Last>1</Last> <Salary>2</Salary> </Band> <Band> <Name ID="222" s

我有一个简单的xml:

<AllBands>
  <Band>
    <Name ID="1234" started="1962">Beatles<![CDATA[lalala]]></Name>
    <Last>1</Last>
    <Salary>2</Salary>
  </Band>
  <Band>
    <Name ID="222" started="1968">Doors<![CDATA[lalala]]></Name>
    <Last>1</Last>
    <Salary>2</Salary>
  </Band>
</AllBands>
为什么呢?他为什么包括cdata?如何仅获取“披头士”?

您的
元素节点包含两个子节点:文本节点和CDATA节点

元素节点的
是其子节点连接的所有值

如果需要文本节点的值,则需要获取文本节点的
,而不是元素


请注意,在读取XML文件时,区分文本节点和CDATA节点是非常罕见的。文件的作者应该能够使用他们喜欢的任何东西。

您有一个文本值和一个CDATA节点作为名称的子节点,这就是为什么

如果您在name节点中进行深入研究,您将能够找到这两个部分,但您可能需要修改xml结构

<Name ID="1234" started="1962">Beatles<Lyrics><![CDATA[lalala]]></Lyrics></Name>
披头士乐队
事实上,它的xsd会很混乱。

您可能想看看Microsoft MDSN对xmlCdata的解释,这里是一个可能重复的链接
<Name ID="1234" started="1962">Beatles<Lyrics><![CDATA[lalala]]></Lyrics></Name>