2012-02-24 4 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

답변

0

, 당신은 브라우저에서 HTML 문서의 출력을보고있는 렌더링 된 페이지를 찾고 있습니다.

따라서 <link> 태그 (태그 임)는 렌더링되지 않습니다.

브라우저의 보기 → 소스 기능을 사용하십시오.

+0

에는이 값을 다시 가져하지 것이라고 생각했다 – user441365

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>"; 
} 
관련 문제