我正在做以下事情 -
// Create message
StringBuilder sbXML = new StringBuilder();
sbXML .Append("<root>");
sbXML .AppendFormat("<messageBody>{0}</messageBody>", JsonString);
sbXML .Append("</root>");
其中JsonString
是一个json字符串,但是json中的一些条目是html的字符串(我认为这就是它破坏的原因)。
当我这样做时 -
XmlDocument xmlDOC = new XmlDocument();
xmlDOC.LoadXml(sbXML.ToString());
我收到了错误 -
'\' is an unexpected token. The expected token is '"' or '''.
我的Json也包含网址,例如 -
{
"exampleJson": {
"url": "http://example.com/",
"html": "<a href=\"http://example.com\" rel=\"test\">example text</a>"
}
}
我相信正是导致异常的是这些值,有没有办法让xmlDOC.LoadXml
加载我的Json,我考虑做类似的事情 -
xmlDOC.LoadXml(sbXML.ToString().Replace("character to replace", "acceptable character"));
然而,这显然不太理想。我也尝试过使用
.Load
然而,这导致路径异常中出现非法字符。
答案 0 :(得分:0)
我想你想做的事情是:
StringBuilder sbXML = new StringBuilder();
sbXML.Append("<root>");
sbXML.Append("<messageBody />");
sbXML.Append("</root>");
XmlDocument xmlDOC = new XmlDocument();
xmlDOC.LoadXml(sbXML.ToString());
xmlDOC.DocumentElement.SelectSingleNode("messageBody").InnerText = JsonString;
正如@Alexei Levenkov所指出的,通过字符串连接创建Xml是一个非常糟糕的主意,以后会导致更多问题。
使用System.Xml.XmlDocument方法是一种更安全的方法,它将编码所需的所有位,以使JsonString
Xml的值安全。
答案 1 :(得分:-1)