如何在asp.net中检索xml节点元素属性值

时间:2012-02-23 06:50:08

标签: asp.net xml

我需要在asp.net中使用for循环检索xml节点elemente属性值....提前感谢

2 个答案:

答案 0 :(得分:0)

取决于您使用的.Net版本。

LINQ to XML是一种可行的方法:http://msdn.microsoft.com/en-us/library/bb387098.aspx

或者,如果您使用的是旧版本.Net,XmlDocument与XPath是一种方法:http://msdn.microsoft.com/en-us/library/ms256086(v=vs.80).aspx

答案 1 :(得分:0)

对于.NET 2.0解决方案,请参阅以下示例:

我的输入文件名为books.xml,它存储在我的示例项目的Properties.Resources中:

<?xml version="1.0" encoding="UTF-8" ?>
<books>
<book Title="Rage of angels" Author="Sidney Sheldon">Book 1</book>
<book Title="If tomorrow comes" Author="Sidney Sheldon">Book 2</book>
<book Title="Stranger in the mirror" Author="Sidney Sheldon">Book 3</book>
<book Title="A studyin scarlet" Author="Sir Arthur Conan Doyle">Book 4</book>
</books>

下面是处理xml文档并将Title属性的值写入Visual Studio中的输出窗口的实际代码。只需更改代码以满足您的xml文件,您就可以了:

protected void Page_Load(object sender, EventArgs e)
{
    XmlDocument document = new XmlDocument();
    document.LoadXml(Properties.Resources.books.ToString());
    ProcessXml(document,"/books/book", "book", "Title");
}

private void ProcessXml(XmlDocument document,string xPath,string elementName,string attributeName)
{
    XmlElement root = document.DocumentElement;
    XmlNodeList nodes = root.SelectNodes(xPath);
    for (int i = 0; i < nodes.Count; i++)
    {
        string attribute = nodes[i].Attributes[attributeName].Value;
        System.Diagnostics.Debug.WriteLine(attribute);
    }
}