解析XML,区别相同节点值

isxiaoming 2011-10-28 06:09:51
以下是接口返回值,请问各位老大,怎么获取到各个节点的值(已百度,想找下还有无更好的方法),
尤其是 当membership节点出现多次的时候,怎么区别与判断?


<mosaic>
<manager>Members</manager>
<command>Search</command>
<member>
<salutation>Miss.</salutation>
<firstname>李</firstname>
<lastname>红</lastname>
<email>xxxxxxx</email>
<homeareacode/>
<homephone/>
<mobileareacode>13</mobileareacode>
<mobilephone>808963756</mobilephone>
<businessareacode></businessareacode>
<businessphone></businessphone>
<address1>东海中路2号环海大厦4C</address1>
<address2/>
<city>青岛</city>
<state/>
<postalcode>266071</postalcode>
<country>China</country>
</member>
<memberships>
<membership>
<cardnumber>86270600193129</cardnumber>
<expdate>15 Oct 2012</expdate>
<amount>1888</amount>
<tax>123.664</tax>
<currency>CNY</currency>
<package>Priority Privilige China</package>
<salesoffice>IC Qingdao New Sales</salesoffice>
</membership>
<membership>
<cardnumber>86270600193129</cardnumber>
<expdate>15 Oct 2012</expdate>
<amount>1888</amount>
<tax>123.664</tax>
<currency>CNY</currency>
<package>Priority Privilige China</package>
<salesoffice>IC Qingdao New Sales</salesoffice>
</membership>
</memberships>
</mosaic>
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_ya_ping 2011-10-31
  • 打赏
  • 举报
回复
网上有操作xml的内容,可以看看
huangwenquan123 2011-10-31
  • 打赏
  • 举报
回复
不太明白lz的意思,以下是获取全部节点的值与名称。

        static void GetValue(XmlNode node)
{
foreach (XmlNode n in node.ChildNodes)
{
if (n.ChildNodes.Count > 1)
GetValue(n);
else
Console.WriteLine("Name:{0} Value:{1}", n.Name, n.InnerText);
}
}
static void Main(string[] args)
{
string str = @"
<mosaic>
<manager>Members</manager>
<command>Search</command>
<member>
<salutation>Miss.</salutation>
<firstname>李</firstname>
<lastname>红</lastname>
<email>xxxxxxx</email>
<homeareacode/>
<homephone/>
<mobileareacode>13</mobileareacode>
<mobilephone>808963756</mobilephone>
<businessareacode></businessareacode>
<businessphone></businessphone>
<address1>东海中路2号环海大厦4C</address1>
<address2/>
<city>青岛</city>
<state/>
<postalcode>266071</postalcode>
<country>China</country>
</member>
<memberships>
<membership>
<cardnumber>86270600193129</cardnumber>
<expdate>15 Oct 2012</expdate>
<amount>1888</amount>
<tax>123.664</tax>
<currency>CNY</currency>
<package>Priority Privilige China</package>
<salesoffice>IC Qingdao New Sales</salesoffice>
</membership>
<membership>
<cardnumber>86270600193129</cardnumber>
<expdate>15 Oct 2012</expdate>
<amount>1888</amount>
<tax>123.664</tax>
<currency>CNY</currency>
<package>Priority Privilige China</package>
<salesoffice>IC Qingdao New Sales</salesoffice>
</membership>
</memberships>
</mosaic>";

XmlDocument xml = new XmlDocument();
xml.LoadXml(str);
XmlNode node = xml.SelectSingleNode("mosaic");
GetValue(node);
}
isxiaoming 2011-10-31
  • 打赏
  • 举报
回复
看不太会,有直观一点的么?大哥
程序兔 2011-10-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 isxiaoming 的回复:]
我是按照网上找的,象如下这样:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(returnval);

XmlElement root = xmlDoc.DocumentElement;

if (root.Name == "mosaic")
{
XmlNode ageNode = xmlDoc……
[/Quote]

你要是不想一个一个节点的读就转为对象
参考 http://www.jzxue.com/wangzhankaifa/asp-net/201102/09-6024.html
isxiaoming 2011-10-30
  • 打赏
  • 举报
回复
救救急呀。。大哥们
isxiaoming 2011-10-28
  • 打赏
  • 举报
回复
我是按照网上找的,象如下这样:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(returnval);

XmlElement root = xmlDoc.DocumentElement;

if (root.Name == "mosaic")
{
XmlNode ageNode = xmlDoc.SelectSingleNode("//mosaic/member");
for (int i = 0; i < 15; i++)
{
string a = ageNode.ChildNodes[i].InnerText;
}
}
程序兔 2011-10-28
  • 打赏
  • 举报
回复
linq to xml? 要么直接读?
isxiaoming 2011-10-28
  • 打赏
  • 举报
回复
asp.net c# 啊 帮帮忙 大哥。。。
摩羯伙夫 2011-10-28
  • 打赏
  • 举报
回复
C# ,js,vb 还是用什么语言解析呀

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧