我们如何在特定的XElement节点下查询数据?

时间:2009-11-09 15:45:48

标签: linq-to-xml

<XMLDOC> 
<OPTIONA>   
    <![CDATA[
aaaaaaaaaaaaa           
]]>
    <![CDATA[
    bbbbbbbb]]>
<OPTIONA>
<OPTIONB>
    <![CDATA[
cccccccccccccccccccc            
]]>
    <![CDATA[
   dddddddddddddd]]>
</OPTIONB>
</XMLDOC>

如何查询OPTIONB下的所有CDATA?使用Linq-to-XML ???

2 个答案:

答案 0 :(得分:3)

OPTIONB节点相当于:

<OPTIONB>
    <![CDATA[
cccccccccccccccccccc                    

   dddddddddddddd]]>
</OPTIONB>

因此,要获取CData部分中的值,您可以使用以下内容:

var cdata = XElement.Load("test.xml").Element("OPTIONB").Value;

您将无法单独获取CData值,因为它们具有相同的语义,就像它是XML解析器的单个CData部分一样。

答案 1 :(得分:1)

XElement.Load("test.xml")
 .Element("OPTIONB")
   .Nodes()
     .Where(x=>x is XCData).First().Cast<XCData>().Value