如何在C#中使用XmlReader读取CDATA?

时间:2015-12-14 07:36:09

标签: c# xml

我能够使用XmlReader读取xml,但无法读取xml的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 个答案:

答案 0 :(得分:0)

CDATA部分中的数据被视为纯文本。您需要将其内容加载到新的DOMDocument中。 您可以使用以下代码识别CDATA:

if (CmdNode.NodeType == XmlNodeType.CDATA)