从包含HTML标记的xml中读取CDATA

本文关键字:xml 读取 CDATA 包含 HTML | 更新日期: 2023-09-27 18:25:47

我正在尝试读取此XML的CDADA,但它被忽略了。后面的"XX"读起来还可以。为什么?

<?xml version="1.0" encoding="utf-8" ?>
<data>
  <item key="one"><![CDATA[<link rel="Stylesheet" type="text/css" href="@Url.Content("~/Site.css")" />]]>XX</item>
</data>

这是读取值的代码:

XmlDocument headdata = new XmlDocument();
headdata.Load(HttpContext.Current.Server.MapPath("~/XML.xml"));
foreach (XmlNode item in headdata.SelectNodes("/data/item"))
{
    HttpContext.Current.Response.Write(item.Attributes["key"].InnerText + ": " +
                                                        item.InnerText + "<BR>");
}

从包含HTML标记的xml中读取CDATA

我建议对此进行调试,并确保您正在加载所需的值。我刚刚运行了下面的和项目。InnerText是

<link rel="Stylesheet" type="text/css" href="blah" />XX

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<data> <item key='"one'"><![CDATA[<link rel='"Stylesheet'" type='"text/css'" href='"blah'" />]]>XX</item></data>");
foreach (XmlNode item in xmlDoc.SelectNodes("/data/item"))
{
    var x = item.Attributes["key"].InnerText + ": " + item.InnerText + "<BR>";
}

猜测,您正在浏览器中查看HTML文档中的输出,并查看呈现的页面。

因此,<link>标签(作为标签)不被呈现。

使用浏览器的视图→Source功能查看。