已经有一些关于将XML解析为JSON的文章,但是我还没有遇到跳过验证XML和在C#中正确转换为JSON的事情。
我想使用Json.NET将XML代码转换为JSON(无效)。 XML包含特殊字符,例如:
<send to>
中的空格,<body/content>
中的斜线,!在<!priority>
中。
在C#中,XDocument.Parse(xmlString)
始终会验证XML,因此转换将引发异常。使用HtmlUtility
进行解码/编码会影响XML标记<和>,但我无法使用它。我该如何工作?
一些示例代码可以在下面找到。
输入(字符串):
<root>
<message>
<send to>some@email.com</send to>
<body/content>This is a message!</body/content>
<!priority>high</!priority>
</message>
</root>
预期的输出(字符串):
{
"root": {
"message": {
"send to": "some@email.com",
"body/content": "This is a message!",
"!priority": "high"
}
}
}
答案 0 :(得分:0)
不要将其视为“无效的XML”,而应将其视为与XML完全无关的专有语法。没有XML工具可以帮助您。您首先需要为非XML文件定义语法,然后需要为该语法编写解析器。编写完该解析器后,您可以直接生成JSON,也可以生成XML并使用现成的XML到JSON转换器。
或者,如果可能的话,请停止使用专有语法,而使用诸如XML和JSON之类的标准。大多数人在20年前就这样做了,并在此过程中节省了很多钱。