日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个xmltojson类

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个xmltojson类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Code
using?System.Text;
using?System.Xml;
using?System.Collections;
public?class?xmltojson
{
????
public?xmltojson()
????{??
//??//?TODO:?在此處添加構造函數邏輯??//
????}//這里我將它變成了public的屬性。??
????public?static?string?XmlToJSON(XmlDocument?xmlDoc)
????{
????????StringBuilder?sbJSON?
=?new?StringBuilder();
????????sbJSON.Append(
"{?");
????????XmlToJSONnode(sbJSON,?xmlDoc.DocumentElement,?
true);
????????sbJSON.Append(
"}");?return?sbJSON.ToString();
????}
????
//??XmlToJSONnode:??Output?an?XmlElement,?possibly?as?part?of?a?higher?array?
????private?static?void?XmlToJSONnode(StringBuilder?sbJSON,?XmlElement?node,?bool?showNodeName)
????{
????????
if?(showNodeName)
????????????sbJSON.Append(
"\""?+?SafeJSON(node.Name)?+?"\":?");
????????sbJSON.Append(
"{");
????????
//?Build?a?sorted?list?of?key-value?pairs?????
????????
//??where???key?is?case-sensitive?nodeName????
????????
//??????????value?is?an?ArrayList?of?string?or?XmlElement?
????????
//??so?that?we?know?whether?the?nodeName?is?an?array?or?not.????
????????SortedList?childNodeNames?=?new?SortedList();
????????
//??Add?in?all?node?attributes?????
????????if?(node.Attributes?!=?null)
????????????
foreach?(XmlAttribute?attr?in?node.Attributes)
????????????????StoreChildNode(childNodeNames,?attr.Name,?attr.InnerText);
????????
//??Add?in?all?nodes?????
????????foreach?(XmlNode?cnode?in?node.ChildNodes)????
????????{
????????????
if?(cnode?is?XmlText)
????????????????StoreChildNode(childNodeNames,?
"value",?cnode.InnerText);
????????????
else?if?(cnode?is?XmlElement)
????????????????StoreChildNode(childNodeNames,?cnode.Name,?cnode);
????????}????????
//?Now?output?all?stored?info?
????????foreach?(string?childname?in?childNodeNames.Keys)
????????{
????????????ArrayList?alChild?
=?(ArrayList)childNodeNames[childname];
????????????
if?(alChild.Count?==?1)
????????????????OutputNode(childname,?alChild[
0],?sbJSON,?true);
????????????
else
????????????{
????????????????sbJSON.Append(
"?\""?+?SafeJSON(childname)?+?"\":?[?");
????????????????
foreach?(object?Child?in?alChild)
????????????????????OutputNode(childname,?Child,?sbJSON,?
false);
????????????????sbJSON.Remove(sbJSON.Length?
-?2,?2);
????????????????sbJSON.Append(
"?],?");
????????????}
????????}
????????sbJSON.Remove(sbJSON.Length?
-?2,?2);
????????sbJSON.Append(
"?}");
????}
????
//??StoreChildNode:?Store?data?associated?with?each?nodeName???
????
//??????????????????so?that?we?know?whether?the?nodeName?is?an?array?or?not.???
????private?static?void?StoreChildNode(SortedList?childNodeNames,?string?nodeName,?object?nodeValue)
????{????????
//?Pre-process?contraction?of?XmlElement-s????
????????if?(nodeValue?is?XmlElement)
????????{
????????????
//?Convert??<aa></aa>?into?"aa":null??????????
????????????
//??????????<aa>xx</aa>?into?"aa":"xx"???????
????????????XmlNode?cnode?=?(XmlNode)nodeValue;
????????????
if?(cnode.Attributes.Count?==?0)
????????????{
????????????????XmlNodeList?children?
=?cnode.ChildNodes;
????????????????
if?(children.Count?==?0)
????????????????????nodeValue?
=?null;
????????????????
else?if?(children.Count?==?1?&&?(children[0]?is?XmlText))
????????????????????nodeValue?
=?((XmlText)(children[0])).InnerText;
????????????}
????????}
????????
//?Add?nodeValue?to?ArrayList?associated?with?each?nodeName??????
????????
//?If?nodeName?doesn't?exist?then?add?it??????
????????object?oValuesAL?=?childNodeNames[nodeName];
????????ArrayList?ValuesAL;
????????
if?(oValuesAL?==?null)
????????{
????????????ValuesAL?
=?new?ArrayList();
????????????childNodeNames[nodeName]?
=?ValuesAL;
????????}
????????
else
????????????ValuesAL?
=?(ArrayList)oValuesAL;
????????ValuesAL.Add(nodeValue);
????}
????
private?static?void?OutputNode(string?childname,?object?alChild,?StringBuilder?sbJSON,?bool?showNodeName)
????{
????????
if?(alChild?==?null)
????????{
????????????
if?(showNodeName)
????????????????sbJSON.Append(
"\""?+?SafeJSON(childname)?+?"\":?");
????????????sbJSON.Append(
"null");
????????}
????????
else?if?(alChild?is?string)
????????{
????????????
if?(showNodeName)
????????????????sbJSON.Append(
"\""?+?SafeJSON(childname)?+?"\":?");
????????????
string?sChild?=?(string)alChild;
????????????sChild?
=?sChild.Trim();
????????????sbJSON.Append(
"\""?+?SafeJSON(sChild)?+?"\"");
????????}
????????
else
????????????XmlToJSONnode(sbJSON,?(XmlElement)alChild,?showNodeName);
????????sbJSON.Append(
",?");
????}
????
//?Make?a?string?safe?for?JSON???
????private?static?string?SafeJSON(string?sIn)
????{
????????StringBuilder?sbOut?
=?new?StringBuilder(sIn.Length);
????????
foreach?(char?ch?in?sIn)
????????{
????????????
if?(char.IsControl(ch)?||?ch?==?'\'')
????????????{
????????????????
int?ich?=?(int)ch;
????????????????sbOut.Append(
@"\u"?+?ich.ToString("x4"));
????????????????
continue;
????????????}
????????????
else?if?(ch?==?'\"'?||?ch?==?'\\'?||?ch?==?'/')
????????????{?sbOut.Append(
'\\');?}

????????????sbOut.Append(ch);
????????}
????????
return?sbOut.ToString();
????}
}

轉載于:https://www.cnblogs.com/daiye/archive/2009/09/25/1573885.html

總結

以上是生活随笔為你收集整理的一个xmltojson类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产无遮挡又黄又爽免费网站 | 青草久久久 | 懂色av一区二区 | 伊人一区二区三区 | 日韩欧美一区二区三区久久婷婷 | 成人网av| 国产又爽又黄免费视频 | 久久国产精品一区二区 | 久久久人妻无码一区二区 | 亚洲天堂美女 | 少妇高潮一区二区三区在线 | 亚洲视频手机在线观看 | 在线观看视频福利 | 日韩精品一区二区三区色欲av | 亚洲av久久久噜噜噜熟女软件 | 国产激情综合 | 十八禁视频网站在线观看 | 久久成年人视频 | 精品久久久久久国产 | 在线sese | 美女被出白浆 | 日韩精品视频一区二区在线观看 | 亚洲不卡在线播放 | 亚洲第一综合网站 | 2022av在线| 动漫涩涩免费网站在线看 | 亚洲最大视频网 | www.日韩一区| 久久久精品中文字幕 | 97久久国产精品 | 色午夜| 一个色综合网 | 美女啪啪网站 | 日韩三级黄 | 午夜精品久久久 | 欧美三级午夜理伦三级小说 | 图片区 小说区 区 亚洲五月 | 久久久精品人妻无码专区 | 精品人妻人伦一区二区有限公司 | 中文字幕在线观看 | 亚洲日本视频在线观看 | 精东传媒在线观看 | 精品视频入口 | 骚色综合 | 先锋资源av网| 在线日韩欧美 | 人妻夜夜爽天天爽 | 99re视频这里只有精品 | 亚洲欧洲日韩在线 | 国产成人短视频在线观看 | 国产一区二区伦理 | 手机av网址| 免费观看国产视频 | 亚洲一区视频在线 | 日韩福利一区二区三区 | 日本人妻丰满熟妇久久久久久 | 国产日韩精品一区二区 | av在线不卡免费看 | 日本aⅴ在线观看 | 欧美黑人精品 | 国产视频一区二区三区四区 | 久操福利| 免费黄色小说视频 | 欧美国产91| 成人免费自拍视频 | 超碰2022 | 亚洲精品电影 | 天天做天天躁天天躁 | 人妻少妇精品无码专区二区 | 久久天天躁狠狠躁夜夜躁2014 | 成年人免费观看视频网站 | a级黄色影院 | 国产中文字幕亚洲 | 捆绑调教在线观看 | 国语对白av | www.日日夜夜 | 思思久久久 | 国产成人不卡 | 国产内射一区 | 青青草国产一区 | 国产社区在线 | 国产一区伦理 | 亚洲综合激情五月久久 | 欧美一区二区在线播放 | av在线播放不卡 | 日韩美女一区 | 99视频导航| 九九影视理伦片 | 伊人久久中文字幕 | 无码精品久久久久久久 | 色爽爽一区二区三区 | 性猛交xxxx乱大交孕妇印度 | 亚欧精品在线观看 | 懂色av粉嫩av蜜乳av | 天天爽天天爽夜夜爽毛片 | 欧美影院一区二区 | 国产美女在线播放 | 国产艳妇疯狂做爰视频 | 国产精品爽爽久久久久久 |