0

这是我拥有的 XML:

<ordinanze>
    <dataagg>17/10/2012 ore 16:30</dataagg>
    <ordinanza>
        <numero>02/2012</numero>
        <titolo>02/2012</titolo>
    </ordinanza>

    <ordinanza>
        <numero>02/2012</numero>
        <titolo>02/2012</titolo>
    </ordinanza>

    <ordinanza>
        <numero>02/2012</numero>
        <titolo>02/2012</titolo>
    </ordinanza>
</ordinanze>    

我想用属性浏览第一级ordinanza(而不是其余的)所以,foreach 中有 3 个节点。我该怎么做?

我的代码:

XmlNodeList StudentNodeList = myXmlDocument.SelectNodes("ordinanza");

foreach (XmlNode node in StudentNodeList)
{
    Response.Write(node.SelectSingleNode("//numero[1]").InnerText);
}

但它什么也没打印!

4

3 回答 3

3

如何使用 Linq To Xml

var xDoc = XDocument.Parse(xml); //or XDocument.Load(fileName)
var list =  xDoc.Descendants("ordinanza")
                .Select(n => new
                {
                    Numero = n.Element("numero").Value,
                    Titolo = n.Element("titolo").Value,
                })
                .ToList();
于 2012-10-17T15:39:34.413 回答
0

您的 XPath 不正确。这是我最喜欢的XPath 参考。要回答您关于如何在 foreach 中获取三个节点的问题,请尝试

var students = myXmlDocument.SelectNodes("/ordinanze/ordinanza");

但是,如果您还不熟悉 LINQ,我建议您尝试一些 LINQ。

于 2012-10-17T15:37:49.270 回答
0

尝试使用 XElement 和Linq to XML

于 2012-10-17T15:34:17.293 回答