gpt4 book ai didi

c# - 使用命名空间将 Json 转换为 XML 字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:42 26 4
gpt4 key购买 nike

我有一个这样的json字符串

"{
"RSS": {
"Channel": {
"item": [
{
"title": "Overlay HD/CC",
"guid": "1",
"description": "This example shows tooltip overlays for captions and quality.",
"jwplayer:image": "http://content.jwplatform.com/thumbs/3XnJSIm4-640.jpg",
"jwplayer:source": [
{
"@file": "http://content.jwplatform.com/videos/3XnJSIm4-DZ7jSYgM.mp4",
"@label": "720p"
},
{
"@file": "http://content.jwplatform.com/videos/3XnJSIm4-kNspJqnJ.mp4",
"@label": "360p"
},
{
"@file": "http://content.jwplatform.com/videos/3XnJSIm4-injeKYZS.mp4",
"@label": "180p"
}
],
"jwplayer:track": [
{
"@file": "http://content.jwplatform.com/captions/2UEDrDhv.txt",
"@label": "English"
},
{
"@file": "http://content.jwplatform.com/captions/6aaGiPcs.txt",
"@label": "Japanese"
},
{
"@file": "http://content.jwplatform.com/captions/2nxzdRca.txt",
"@label": "Russian"
},
{
"@file": "http://content.jwplatform.com/captions/BMjSl0KC.txt",
"@label": "Spanish"
}
]
}
]
},
"@xmlns:jwplayer": "http://support.jwplayer.com/customer/portal/articles/1403635-media-format-reference#feeds",
"@version": "2.0"
}
}"

我尝试使用 json.net 将其转换为 xmlDocument:

XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode(json);
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
xmlDoc.WriteTo(xmlTextWriter); // Exception: Cannot use a prefix with an empty namespace.
xmlTextWriter.Flush();
return stringWriter.GetStringBuilder().ToString();
}

但是当我尝试访问 OuterXml 属性时,它抛出异常“不能使用带有空命名空间的前缀。”

有没有解决这个异常的方法,或者有其他方法可以将 json 转换为 xml 字符串?xml 字符串具有如下命名空间

<jwplayer:image>http://content.jwplatform.com/thumbs/3XnJSIm4-640.jpg</jwplayer:image>

最佳答案

我不确定为什么您的代码会抛出异常,因为它一定是有效的 XML,因为 XML 已成功加载到 XmlDocument 对象。

我认为获取格式化 XML 字符串的另一种方法是将未格式化的 XML 字符串从 XmlDocument.OuterXml 加载到 XDocument,然后将其转换为格式化的 XML 字符串:

XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode(json);
XDocument xDoc = XDocument.Parse(xmlDoc.OuterXml);
return xDoc.ToString();

效率不高,但这种方法简单且有效。

关于c# - 使用命名空间将 Json 转换为 XML 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23564741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com