【发布时间】:2015-01-04 13:49:15
【问题描述】:
我正在尝试从 XML 文档中获取一些数据。我无法控制架构。如果由我决定,我会选择另一个模式。我正在使用 C# 的 XPATH 库来获取数据。
XML 文档
<Journals>
<name>Title of Journal</name>
<totalvolume>2</totalvolume>
<JournalList>
<Volume no="1">
<Journal>
<issue>01</issue>
<Title>Title 1</Title>
<date>1997-03-10</date>
<link>www.somelink.com</link>
</Journal>
<Journal>
<issue>02</issue>
<Title>Title 3</Title>
<date>1997-03-17</date>
<link>www.somelink.com</link>
</Journal>
</Volume>
<Volume no="2">
<Journal>
<issue>01</issue>
<Title>Title 1</Title>
<date>1999-01-01</date>
<link>www.somelink.com</link>
</Journal>
<Journal>
<issue>01</issue>
<Title>Title 2</Title>
<date>1999-01-08</date>
<link>www.somelink.com</link>
</Journal>
</Volume>
</JournalList>
</Journals>
我正在尝试获取第 2 卷节点中的所有数据。到目前为止,这是我尝试过的:
C# 代码:
protected void loadXML(string url)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url);
string strQuery = "Volume[@no='2']";
XmlElement nodeList = xmlDoc.DocumentElement;
XmlNodeList JournalList = nodeList.SelectNodes(strQuery);
foreach (XmlElement Journal in JournalList)
{
XmlElement temp = Journal;
}
}
JournalList 中似乎没有节点。任何人?提前致谢/
【问题讨论】:
-
@slugster LINQ 很不错,但它并不是天生就更好。 XPath 可以轻松处理这种情况(以及许多更复杂的情况)。