获取文件中的数据

本文关键字:数据 文件 获取 | 更新日期: 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