我有一些数据在某些字段中包含尖括号。
即使在<:
或>
(或甚至十六进制代码)中正确转义,在Visual Studio 2005 ASP.Net中,字段数据也会在第一个尖括号处被截断。如果我用大括号替换数据,它显示正常。
示例数据(未转义):
<ITReview><row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/></ITReview><ITReview><row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/></ITReview>
示例数据(转义):
<ITReview>
<row TopNode="REQ 123456	TT Description	<Date sent to app dev>	<Priority>	<SubTask Status>"/>
<row TopNode="REQ 456789	TT Description	<Date sent to app dev>	<Priority>	<SubTask Status>"/>
</ITReview>
没有做任何棘手的事情,将TreeView绑定到设置了文件名的XMLDataSource,并将绑定指定为DataMember = row和TextField = TopNode。
我没有在网上找到任何东西,但当然搜索“尖括号”只会增加结果的数量,而不是减少它们。
有人看到这样的事吗?了解变通方法或解决方案? ASP.Net v2.0.50727。
更新:我建议使用的CDATA示例。没用。
<ITReview>
<TopNode>
<MainData>
<![CDATA[REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>]]>
</MainData>
</TopNode>
<TopNode>
<MainData>
<![CDATA[REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>]]>
</MainData>
</TopNode>
</ITReview>
答案 0 :(得分:0)
尝试在HTMLEncode()
的上下文中写出来答案 1 :(得分:0)
您是否可以修改源XML,以便不是将数据放在TopNode =“”属性中,而是<row><TopNode><![CDATA[long string]]></TopNode></row>
?
答案 2 :(得分:0)
如果我对尖括号进行双重编码,它似乎起作用,至少我认为你正在寻找。所以&lt;
代替<
我四处寻找这种想法的原因可能会有一个你可以改变的设置。看起来它来自XmlAttribute类的Value属性,但我没有办法将其关闭。