我们如何在C sharp中进行XML解析[英] how we do XML parsing in C sharp

问题描述

你好,
请帮我在 XML 中找到节点.
我的 XML 文件是:

xml版本="1.0" 编码="UTF-8"?><DistanceMatrixResponse><状态>OK</status><origin_address>美国加利福尼亚</origin_address><destination_address>美国路易斯安那州</destination_address><><元素><状态>OK</status><持续时间><>110693</value><text>1 天 7小时</text></duration><距离><>3037646</value><文本>3,038公里</text></distance></element></row></DistanceMatrixResponse>

我想与这个 XML 文件保持距离.我正在使用此代码,但它给出了错误
XmlDocument xml = new XmlDocument();xml.LoadXml(tempString);//假设str字符串包含"<Names>...</Names>"// XmlNodeList xnList = xml.SelectNodes("/DistanceMatrixResponse/text/[@type='distance']");XmlNode node = xml.SelectSingleNode("DistanceMatrixResponse/row/element/distance/text()");foreach (XmlNode xn in 节点){Console.WriteLine(xn.InnerText);}

推荐答案

你的意思是:
XmlDocument xml = new XmlDocument();xml.Load("myfile.xml");XmlNode 节点;node = xml.SelectSingleNode("DistanceMatrixResponse/row/element/distance/text");Console.WriteLine(node.InnerText);

?

使用以下代码读取Xml文件-
现在 添加 命名空间 - 使用 System.Xml;在按钮上单击编写代码为-XmlTextReader reader = new XmlTextReader("C:\\Users\\戴尔\\桌面\\新文件夹\\XMLFile1.xml");//这将是xml的位置和名称while (reader.Read()){switch (reader.NodeType){case XmlNodeType.Element: // 节点是一个元素.MessageBox.Show("<" + reader.Name);//MessageBox.Show(">");//MessageBox.Show(reader.Value);break;case XmlNodeType.Text: //显示每个中的文本元素.MessageBox.Show(reader.Value);break;case XmlNodeType.EndElement: //显示结束元素.//Console.Write("</" + reader.Name);//MessageBox.Show(">");break;}}

.NET 框架带有用于解析 XML 的不同库类;请在下面查看我对它们的概述:


  1. 使用 System.Xml.XmlDocument 类.它实现了DOM接口;如果文档不是太大,这种方式是最简单且足够好的.
    请参阅 http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx[^].
  2. 使用类System.Xml.XmlTextReader;这是最快的阅读方式,尤其是您需要跳过一些数据时.
    请参阅 http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx[^].
  3. 使用类System.Xml.Linq.XDocument;这是类似于 XmlDocument 的最合适的方式,支持 LINQ to XML 编程.
    请参阅 http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx[^], http://msdn.microsoft.com/en-us/library/bb387063.aspx[^].


—SA

本文地址:https://www.itbaoku.cn/post/1395101.html