日韩性视频-久久久蜜桃-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类的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 乌克兰毛片 | 亚洲天堂中文字幕 | 少妇献身老头系列 | 国产三级日本三级在线播放 | 亚洲精选91 | 国产一区二区高清视频 | 国产精品久久久久久久久久直播 | 中日毛片| 日韩免费成人av | 欧美性受xxxx黑人xyx性 | 亚洲美女自拍视频 | 国产美女视频一区二区 | 天堂网av在线播放 | 国产精品理论片在线观看 | jizzjizz在线观看 | 无码人妻精品一区二区三区99v | 亚洲色图在线观看视频 | 成年人看的视频网站 | 成年人毛片视频 | 国产欧美大片 | 国产天堂av | 亚洲国产成人自拍 | 国产人妻精品一区二区三 | 污漫网站| 日本久久精品视频 | a免费观看 | 国产精品探花视频 | 亚洲区一区 | 久久女人天堂 | 舐め犯し波多野结衣在线观看 | 网站免费黄色 | 欧美日韩在线影院 | 动漫一区二区三区 | 九九精品在线视频 | 久久久久美女 | 韩国视频一区二区三区 | 欧美日韩亚洲在线 | 欧美影视| 国产第5页 | 中文字幕一区二区三区精彩视频 | 尼姑福利影院 | 久久另类ts人妖一区二区 | 亚洲第8页 | 麻豆91网站 | 久久av一区 | 亚洲性视频 | 久久99精品久久久久婷婷 | 人人妻人人做人人爽 | 日韩一级性生活片 | 影音先锋中文字幕在线视频 | 国产三级福利 | 亚洲视频天堂 | 国产精品一品二品 | 欧色丰满女同hd | 伊人一级片 | 成人国产精品一区 | 国产精品美女在线 | 国产精品熟女久久久久久 | 99riav国产精品视频 | 久久久www成人免费毛片 | 一色屋免费视频 | 三级黄色片免费 | 男女在线免费观看 | 精品一区二区久久久久蜜桃 | 欧美性aaa| 久久国产精品无码一区二区 | 国产视频一区二区在线 | 欧美一级片在线视频 | 国产精品久久久久久久午夜 | 青娱乐av在线 | 日韩精品极品视频在线观看免费 | 色狠狠一区 | 麻豆美女视频 | 日本一区二区免费看 | 香蕉依人 | 噜噜色av| 国产又爽又黄免费软件 | 天天摸日日摸 | 欧美福利小视频 | www.黄色片网站 | 成人爱爱免费视频 | 老女人一区 | 国产精品一区二区人妻喷水 | 成人在线激情视频 | 最黄一级片 | 色综合久久中文字幕无码 | 久久久久精彩视频 | 欧美激情一区二区三区蜜桃视频 | 亚洲AV无码精品久久一区二区 | 少妇视频一区二区三区 | 调教91| 伊人久久综合影院 | 一卡二卡三卡四卡 | 波多野结衣在线播放 | 久久橹| 91在线一区二区三区 | 不卡免费av | 国产成人自拍一区 | 第一章婶婶的性事 |