获取文件中的数据
本文关键字:数据 文件 获取 | 更新日期: 2023-09-27 17:51:01
好吧,这是一个愚蠢的问题,但我只是从xml开始。
<fifth points = '500' answer = 'Ada Lovelace'>
This woman, known as the world's first computer programmer
was also a Countess.
</fifth>
我如何确切地获得Ada Lovelace之后的数据?我理解第五个是节点,而点和答案是属性。我必须抓住什么来获得所需的数据?
您可以尝试和测试一些东西,以帮助您了解如何获得节点。InnerText
实现var testDoc =
@"<fifth points = '500' answer = 'Ada Lovelace'>"
+ "This woman, known as the world's first computer programmer "
+ "was also a Countess."
+ "</fifth>";
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(testDoc);
var innerxml = docXML.InnerText;
MessageBox.Show(innerxml);
您可能正在寻找这样的内容:
node.InnerText
要学习在c#中解析节点XML,请阅读http://www.csharp-examples.net/xml-nodes-by-name/。这篇文章,http://www.codeproject.com/Articles/7718/Using-XML-in-C-in-the-simplest-way也可能很有帮助,因为它提供了一些在c#中解析XML的最简单的方法。
您可以简单地索引XmlNode节点名称:XmlNode ["FirstName"]. innertext。请看下面的例子。
XmlDocument xml = new XmlDocument();
// suppose that myXmlString contains "<Names>...</Names>":
xml.LoadXml(myXmlString);
XmlNodeList xnList = xml.SelectNodes("/Names/Name");
foreach (XmlNode xn in xnList)
{
string firstName = xn["FirstName"].InnerText;
string lastName = xn["LastName"].InnerText;
Console.WriteLine("Name: {0} {1}", firstName, lastName);
}
输出为:
姓名:John Smith姓名:James White
编辑:重要的是要注意DJ KRAZE和Jeremy Thompson也启发了我的答案。
您可以使用Linq to Xml。如果这是一个完整的xml,你需要解析:
var xml = "<fifth points='500' answer='Ada Lovelace'>This woman, known as the world's first computer programmer was also a Countess.</fifth>";
XElement element = XElement.Parse(xml);
string text = (string)element; // takes element's innerText
如果您需要通过answer属性值从xml文件中选择此元素:
XDocument xdoc = XDocument.Load(path_to_xml_file);
string text = xdoc.Descendants("fifth")
.Where(e => (string)e.Attribute("answerswer") == "Ada Lovelace")
.Select(e => (string)e)
.FirstOrDefault(); // returns first matched element or null