问题描述
<?xmlversion="1.0"encoding="GBK"?><p><ssfzhm="370912341302215676"/><serrortext=""/><srydjid="1111412399412"/><scount="1"/><sxm="张三疯"/><sdyrylb="C"/><szzmc="中国国家"/><sptmztcsm=""/><serrcode="0"/><szylsh="150421123425096*001"/><sryid="1111412123469399411"/><sxb="1"/><scsrq="20130221000000"/><serrorcode="0"/><serrtext=""/></p>
请大家帮忙解析下这个xml文件,比如我想获取zzmc,xm,errorcode这几个节点的值如何获取
解决方案
解决方案二:
你这个xml比较奇葩了点……staticvoidReadSpXml(){stringxml=@"<?xmlversion=""1.0""encoding=""GBK""?><p><ssfzhm=""370912341302215676""/><serrortext=""""/><srydjid=""1111412399412""/><scount=""1""/><sxm=""张三疯""/><sdyrylb=""C""/><szzmc=""中国国家""/><sptmztcsm=""""/><serrcode=""0""/><szylsh=""150421123425096*001""/><sryid=""1111412123469399411""/><sxb=""1""/><scsrq=""20130221000000""/><serrorcode=""0""/><serrtext=""""/></p>";XElementroot=XElement.Parse(xml);foreach(vareinroot.Elements("s")){varattr=e.Attributes().First();Console.WriteLine(attr.Name+":"+attr.Value);}}
解决方案三:
这的确是我见过的比较奇葩的XML了解析的话先声明一个xmldocumentt对象,获取到xml的根节点,比如xmldocumentdoc=newxmldocument();然后你要获取相应节点的值:stringZZMC=doc.selectsingleNode(“zzmc”).innertext;好像是这样吧,楼主自己试试,当然,你要是能理解楼上的做法的话最好,他的写法就更好一点,更直观,可以看到输出的结果。
解决方案四:
引用1楼starfd的回复:
你这个xml比较奇葩了点……staticvoidReadSpXml(){stringxml=@"<?xmlversion=""1.0""encoding=""GBK""?><p><ssfzhm=""370912341302215676""/><serrortext=""""/><srydjid=""1111412399412""/><scount=""1""/><sxm=""张三疯""/><sdyrylb=""C""/><szzmc=""中国国家""/><sptmztcsm=""""/><serrcode=""0""/><szylsh=""150421123425096*001""/><sryid=""1111412123469399411""/><sxb=""1""/><scsrq=""20130221000000""/><serrorcode=""0""/><serrtext=""""/></p>";XElementroot=XElement.Parse(xml);foreach(vareinroot.Elements("s")){varattr=e.Attributes().First();Console.WriteLine(attr.Name+":"+attr.Value);}}
谢谢我试一下
解决方案五:
stringxml=@"<?xmlversion=""1.0""encoding=""GBK""?><p><ssfzhm=""370912341302215676""/><serrortext=""""/><srydjid=""1111412399412""/><scount=""1""/><sxm=""张三疯""/><sdyrylb=""C""/><szzmc=""中国国家""/><sptmztcsm=""""/><serrcode=""0""/><szylsh=""150421123425096*001""/><sryid=""1111412123469399411""/><sxb=""1""/><scsrq=""20130221000000""/><serrorcode=""0""/><serrtext=""""/></p>";XElementroot=XElement.Parse(xml);varelements=fromelinroot.Elements("s")whereel.Attribute("zzmc")!=null||el.Attribute("xm")!=null||el.Attribute("errorcode")!=nullselectel;foreach(XElementelementinelements){Console.WriteLine(string.Format("{0}={1}",element.FirstAttribute.Name,element.FirstAttribute.Value));}
解决方案六:
这个XML结构真叼