有一些关于将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"
}
}
}
不要将其视为"无效的XML",而应将其视为与XML完全无关的专有语法。没有XML工具可以帮助您解决这个问题。首先需要为非 XML 文件定义语法,然后需要为该语法编写分析器。编写该解析器后,您可以直接生成 JSON,也可以生成 XML 并使用现成的 XML 到 JSON 转换器。
或者,如果可能的话,停止使用专有语法,改用XML和JSON等标准。大多数人在20年前就这样做了,并在此过程中为自己节省了很多钱。