我正在阅读XML文件,我想将实际内容写入HTML。我认为问题是HtmlTextWriter将我的XML标记视为HTML标记。我尝试过使用HttpUtility.HtmlEncode / Decode和SecurityElement.Escape但这些都不起作用。如何转义标记,以便我可以使用文字字符串写入HTML页面。
private string WriteXmlToHtml()
{
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
int counter = 0;
string line;
StreamReader file = new StreamReader("test.xml");
while ((line = file.ReadLine()) != null)
{
//HttpUtility.HtmlDecode(line);
//System.Security.SecurityElement.Escape
writer.Write(line);
counter++;
}
}
return stringWriter.ToString();
}
答案 0 :(得分:1)
//编辑:我已经无耻地实施了Xanatos&#39; <pre>
标记到输出字符串中。来自评论
writer.Write(String.Format("<pre>{0}</pre>",HttpUtility.HtmlEncode(line)));
产生以下输出:
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Code>D:picture\simple</Code>...
加上它在每一行后添加一个换行符。不幸的是,它没有留下压痕。
这应该在你的html文件中呈现为有效的xml。
答案 1 :(得分:0)
尝试使用:
private string WriteXmlToHtml()
{
string filePath = @"d:\abc.xml";
return Server.HtmlEncode(File.ReadAllText(filePath));
}