2012-02-24 57 views
0

我正在尝试读取此XML的CDADA,但它被忽略。尾随的“XX”被读取正常。为什么?从包含HTML标记的xml读取CDATA

<?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>"); 
} 
+0

好,我觉得这只是一个愚蠢的问题缓存没有 – user441365 2012-02-24 17:01:51

回答

0

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

因此<link>标记(作为标记)未呈现。

使用浏览器的查看→源功能来查看它。

+0

它没有带来值回 – user441365 2012-02-24 16:51:58

1

我会建议调试这个,并确保你正在加载你期待的值。我只是跑下面和item.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>"; 
}