首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

解析XML有关问题

2012-04-10 
解析XML问题。?xml version1.0 encodinggb2312 ?ResultMainFlagTrue/FlagCode000/Code

解析XML问题。
<?xml version="1.0" encoding="gb2312" ?> 
<Result>
 <Main>
 <Flag>True</Flag> 
 <Code>000</Code> 
 <Message>操作成功</Message> 
 </Main>
</Result>

我想解析这样的XML 怎么样解析呢 分别得到Flag Code 和Message 
谁能帮我写一下 谢谢啦。

[解决办法]
string str=@<?xml version=\"1.0\" encoding=\"gb2312\"?> 
<Result>
 <Main>
 <Flag>True</Flag>
 <Code>000</Code>
 <Message>操作成功</Message>
 </Main>
</Result>
";
XmlDocument xml = new XmlDocument();
xml.LoadXml(str);
XmlNodeList xnl = xml.SelectNodes("../Result/Main/Flights");
 foreach (XmlNode item in xnl)
 {
XmlNode Number = item.SelectSingleNode("Flag");
string Flag=Number.InnerText;
...
}

[解决办法]

C# code
 /// <summary>        /// 获取指定节点的值        /// </summary>        /// <param name="strFileName">文件路径</param>        /// <param name="nodeName">节点名称</param>        /// <param name="value">设置后的值</param>        /// <param name="nodeDir">指定节点所在的节点目录</param>        /// <returns></returns>        public static string GetNodeValue(string strFileName, string nodeName, string nodeDir)        {            string value = null;            try            {                XmlDocument xmlDoc = new XmlDocument();                xmlDoc.Load(strFileName);                XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点                 foreach (XmlNode xn in nodeList)    //遍历所有子节点                 {                    XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型                     if (xe.Name == nodeName)                    {                        value = xe.InnerText.Trim();                        break;                    }                }            }            catch (Exception exp)            {                throw exp;            }            return value;        }[color=#FF0000]GetNodeValue(filePath, "Main", "Result/Flag");[/color]
[解决办法]
string str=@<?xml version=\"1.0\" encoding=\"gb2312\"?>
<Result>
 <Main>
 <Flag>True</Flag>
 <Code>000</Code>
 <Message>操作成功</Message>
 </Main>
</Result>
";
XmlDocument xml = new XmlDocument();
xml.LoadXml(str);
XmlNodeList xnl = xml.SelectNodes("../Result/Main");
 foreach (XmlNode item in xnl)
 {
string Flag = item.SelectSingleNode("Flag").InnerText;
string Code= item.SelectSingleNode("Code").InnerText;
string Message = item.SelectSingleNode("Message").InnerText;
}

数据量很多就要用集合保存Flag Code和Message

热点排行