2015-12-14 72 views
0

我能夠使用XmlReader讀取xml,但無法讀取xml的CDATA部分。如何在C#中使用XmlReader讀取CDATA?

如何閱讀?

下面是我的代碼

private void ParseDataValueNode(XmlReader CmdNode, Message Msg) 
     { 
      int DataValueNodeCount = 0; 
      while (CmdNode.Read()) 
      { 
       if (CmdNode.Name.Equals("DataValue") && CmdNode.NodeType == XmlNodeType.Element) 
       { 
        DataValueNodeCount++; 
        ParseDataValueNode(CmdNode, Msg, DataValueNodeCount, true); 
       } 
      } 
     } 

XML

<Response Id="2"> 
    <Information> 
     <![CDATA[ <DataValue Name="abc" Value="dddd"/> <DataValue Name="ccc" Value="ffff"/> <DataValue Name="ddd" Value="dfdf"/> ]]> 
    </Information> 
    </Response> 

如果XML不包含CDATA那麼它工作完全正常,但如果CDATA不CDATA

下讀取元素
+1

CDATA內的一切是一個單一的文本()節點。您需要爲該DocumentFragment啓動一個新的閱讀器 – rene

回答

0

CDATA部分中的數據被視爲純文本。您需要將其內容加載到新的DOMDocument中。 您可以使用此代碼識別CDATA:

if (CmdNode.NodeType == XmlNodeType.CDATA)