我有一个控制台应用程序可以加载XmlDocument,但是如果字符串具有类似*
$
任何想法如何加载xml?感谢所有回复
using System;
using System.Net;
using System.Xml;
public class Program
{
public static void Main()
{
//string xmlStringWorking = "<xml>© ¨ À ¥ §</xml>";
string xmlStringWorking = "<xml>* $ © ¨ À ¥ §</xml>";
xmlStringWorking= WebUtility.HtmlDecode(xmlStringWorking);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStringWorking);
Console.WriteLine(xmlStringWorking);
}
}
期望特殊字符为here
答案 0 :(得分:4)
HtmlDecode
仅用于消除HtmlEncode
的影响。由于*
和$
在HTML中没有特殊含义,因此不需要对其进行编码。因此HtmlEncode
不会将它们编码为*
和$
;因此HtmlDecode
将不会对其进行解码。
答案 1 :(得分:2)
您必须使用以下值声明这些实体:
string xmlStringWorking = "<!DOCTYPE xml [<!ENTITY ast \"*\"> <!ENTITY dollar \"$\">]> <xml>* $ © ¨ À ¥ §</xml>";
答案 2 :(得分:1)
您可以替换:
*通过*
;
$ by $
;
string xmlStringWorking = "<xml>* $ © ¨ À ¥ §</xml>";