查了很多资料,都没发现怎么将 ExecuteXmlReader 中加上 CDATA。
最终我的办法就是不用 ExecuteXmlReader,而用 DataView(类似的也可以)。看来 ExecuteXmlReader 方法真是个鸡肋,用在纯数字的报表上还可以。
代码(未作特殊字符处理,详见 XmlTextReader 解析 XML 时遇到特殊字符出错)。
// dv 是 DataView 对象
for (int i = 0; i < dv.Count; i++)
{
string row = "";
for (int j = 0; j < dv.Table.Columns.Count; j++)
{
row += "<" + dv.Table.Columns[j].ColumnName + ">" +
"<![CDATA[" + HttpUtility.HtmlEncode(Convert.ToString(dv[i][j])) + "]]>" +
"</" + dv.Table.Columns[j].ColumnName + ">";
}
xml += "<row>" + row + "</row>";
}
相关阅读