所以,我有一些以下形式的数据:
<foo><bar>test</bar></foo>
我希望使用哪些.NET类/函数将其转换为漂亮的东西,然后将其写入文件,如下所示:
<foo>
<bar>
test
</bar>
</foo>
请在功能和类上具体,而不仅仅是“使用System.XML”。在使用XML的.NET中,似乎有很多不同的方法:(
由于
答案 0 :(得分:15)
使用System.Xml.XmlDocument
类......
Dim Val As String = "<foo><bar>test</bar></foo>"
Dim Xml As String = HttpUtility.HtmlDecode(Val)
Dim Doc As New XmlDocument()
Doc.LoadXml(Xml)
Dim Writer As New StringWriter()
Doc.Save(Writer)
Console.Write(Writer.ToString())
答案 1 :(得分:8)
您可以使用此代码。
string p = "<foo><bar>test</bar></foo>";
Console.WriteLine(System.Web.HttpUtility.HtmlDecode(p));
答案 2 :(得分:4)
如果漂亮打印不重要,请使用.NET 4.0以来的System.Net.WebUtility.HtmlDecode。
答案 3 :(得分:-3)
如果您要转换包含“&lt; foo /&gt;&lt; bar /&gt;”的字符串,请使用以下内容,传入Xml字符串,将ToXml
设置为true到本机xml等价物,“#lt; foo / #gt; #lt; bar #gt;” - 用&符号 替换哈希值,因为此编辑器一直在转义它...同样,如果ToXml
为false,它将转换包含“#”的字符串LT;富/#GT; #lt;棒#gt;”中( 用&符号 替换哈希)到“&lt; foo /&gt;&lt; bar /&gt;”
string XmlConvert(string sXml, bool ToXml){ string sConvertd = string.Empty; if (ToXml){ sConvertd = sXml.Replace("<", "#lt;").Replace(">", "#gt;").Replace("&", "#amp;"); }else{ sConvertd = sXml.Replace("#lt;", "<").Replace("#gt;", ">").Replace("#amp;", "&"); } return sConvertd; }
( 用&符号 替换哈希值,因为此编辑器会在预标签中将其转义)
修改:感谢 technophile 指出显而易见的内容,但其目的仅限于 XML标签。这是该功能的要点,可以很容易地扩展到覆盖其他XML标签,并随意添加我可能错过的更多!干杯! :)