如何浏览XML上的特定级别?

时间:2012-10-17 15:31:54

标签: c# .net xml

这是我的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);
}

但它什么都没打印!

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

尝试使用XElement和Linq to XML

答案 2 :(得分:0)

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

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

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