110,539
社区成员
发帖
与我相关
我的任务
分享
<Book>
<BookState>OK</BookState>
<Bookshelf ID="1" ShelfInfo="ShelfInfoA" PID="0" SLevel="1" ShelfName="书架1" />
<Bookshelf ID="2" ShelfInfo="ShelfInfo2" PID="1" SLevel="2" ShelfName="科普书架" >
<BookInfo BookInfo='ssss' BookName="地球人" BookID="1002" />
<BookInfo BookInfo='dddd' BookName="火星人" BookID="1003" />
<BookInfo BookInfo='aaaa' BookName="水星人" BookID="1004" />
<BookInfo BookInfo='ffff' BookName="土星人" BookID="1005" />
</Bookshelf>
<Bookshelf ID="3" ShelfInfo="ShelfInfo3" PID="1" ShelfName="历史书架" />
<Bookshelf ID="4" ShelfInfo="ShelfInfoB" PID="3" ShelfName="中文历史书架" />
<Bookshelf ID="5" ShelfInfo="XXShelfInfo" PID="4" ShelfName="近代中文历史书架" />
<Bookshelf ID="7" ShelfInfo="ShelfInfo22" PID="1" ShelfName="文学书架" >
<BookInfo BookInfo='eeeec' BookName="古代诗词" BookID="1001" />
</Bookshelf>
<Bookshelf ID="9" ShelfInfo="ShelfInfoW" PID="7" ShelfName="古代文学书架" />
</Book>
String xml = @"<Book>
<BookState>OK</BookState>
<Bookshelf ID=""1"" ShelfInfo=""ShelfInfoA"" PID=""0"" SLevel=""1"" ShelfName=""书架1"" />
<Bookshelf ID=""2"" ShelfInfo=""ShelfInfo2"" PID=""1"" SLevel=""2"" ShelfName=""科普书架"" >
<BookInfo BookInfo='ssss' BookName=""地球人"" BookID=""1002"" />
<BookInfo BookInfo='dddd' BookName=""火星人"" BookID=""1003"" />
<BookInfo BookInfo='aaaa' BookName=""水星人"" BookID=""1004"" />
<BookInfo BookInfo='ffff' BookName=""土星人"" BookID=""1005"" />
</Bookshelf>
<Bookshelf ID=""3"" ShelfInfo=""ShelfInfo3"" PID=""1"" ShelfName=""历史书架"" />
<Bookshelf ID=""4"" ShelfInfo=""ShelfInfoB"" PID=""3"" ShelfName=""中文历史书架"" />
<Bookshelf ID=""5"" ShelfInfo=""XXShelfInfo"" PID=""4"" ShelfName=""近代中文历史书架"" />
<Bookshelf ID=""7"" ShelfInfo=""ShelfInfo22"" PID=""1"" ShelfName=""文学书架"" >
<BookInfo BookInfo='eeeec' BookName=""古代诗词"" BookID=""1001"" />
</Bookshelf>
<Bookshelf ID=""9"" ShelfInfo=""ShelfInfoW"" PID=""7"" ShelfName=""古代文学书架"" />
</Book>";
XmlDocument d = new XmlDocument();
d.LoadXml(xml);
XmlNodeList nodes = d.SelectNodes("//Bookshelf");
StringBuilder sb = new StringBuilder();
foreach(XmlNode n in nodes)
{
sb.AppendLine("{ID:" + n.Attributes["ID"].Value + ",Info:'" + n.Attributes["ShelfInfo"].Value + "',PID:" + n.Attributes["PID"].Value + ",Name:'" + n.Attributes["ShelfName"].Value + "'},");
if (n.ChildNodes.Count > 0)
{
XmlNodeList child = n.SelectNodes("BookInfo");
if (child != null)
{
foreach (XmlNode m in child)
{
sb.AppendLine("{ID:" + m.Attributes["BookID"].Value + ",Info:'" + m.Attributes["BookInfo"].Value + "',PID:" + n.Attributes["PID"].Value + ",Name:'" + m.Attributes["BookName"].Value + "'},");
}
}
}
}
String json = sb.ToString().Trim();
if (json.EndsWith(",")) json = json.TrimEnd(',');