ASP.NET Treeview控件无法处理数据中的尖括号

时间:2010-12-03 20:36:08

标签: asp.net visual-studio-2005 treeview

我有一些数据在某些字段中包含尖括号。

即使在&lt:>(或甚至十六进制代码)中正确转义,在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&#x09;TT Description&#x09;&lt;Date sent to app dev&gt;&#x09;&lt;Priority&gt;&#x09;&lt;SubTask Status&gt;"/>
<row TopNode="REQ 456789&#x09;TT Description&#x09;&lt;Date sent to app dev&gt;&#x09;&lt;Priority&gt;&#x09;&lt;SubTask Status&gt;"/>
</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>

3 个答案:

答案 0 :(得分:0)

尝试在HTMLEncode()

的上下文中写出来

答案 1 :(得分:0)

您是否可以修改源XML,以便不是将数据放在TopNode =“”属性中,而是<row><TopNode><![CDATA[long string]]></TopNode></row>

答案 2 :(得分:0)

如果我对尖括号进行双重编码,它似乎起作用,至少我认为你正在寻找。所以&amp;lt;代替<

我四处寻找这种想法的原因可能会有一个你可以改变的设置。看起来它来自XmlAttribute类的Value属性,但我没有办法将其关闭。