好的,这里是愚蠢的问题,但我只是从 xml 开始。
<fifth points = '500' answer = 'Ada Lovelace'>
This woman, known as the world's first computer programmer
was also a Countess.
</fifth>
在 Ada Lovelace 之后,我究竟如何获得数据?我知道第五个是节点,点和答案是属性。我必须抓住什么才能获得所需的数据?
您可能正在寻找类似的东西:
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也可能有帮助,因为它提供了一些解析 XML 的最简单方法在 C# 中。
您可以简单地使用节点名称索引 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);
}
输出是:
姓名:约翰·史密斯姓名:詹姆斯·怀特
编辑:重要的是要注意 DJ KRAZE 和 Jeremy Thompson 也启发了我的回答。
这是您可以尝试和测试的内容,以帮助您了解如何访问 node.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);
您可以使用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("answer") == "Ada Lovelace")
.Select(e => (string)e)
.FirstOrDefault(); // returns first matched element or null