将xml值检索到字符串中

时间:2010-12-23 14:45:17

标签: c# asp.net xml

在以下XML结构中,如何检索名称值并将其放入字符串中? (我在我的方法中使用XPathNavigator)

<testsystem>
    <test>
       <name>one</name>
       <name>two</name>
       <name>three</name>
    </test>
</testsystem>

该名称将显示在数据网格的bound列中。

我能够获得一个语法相似的属性:(但是当更改xml struture时,它不再包含属性值)

string name = nav.GetAttribute("name", "")

但是到目前为止还没有幸运获得导航的价值。

目的是能够将它用于以下物体,因此我可以将名称放入其中。

test t = new test() { Name = name, Questions= new List<Questions>() };

最好的问候。

3 个答案:

答案 0 :(得分:2)

对于多个name节点,您可以使用此方法:

XPathNodeIterator iter = xml.CreateNavigator().Select("//test/name");
while (iter.MoveNext())
{
    var nav = iter.Current;
    string name = nav.Value;
    Console.WriteLine(name);
}

或者您可以使用XmlDocument.GetElementsByTagName method

var nodeList = xml.GetElementsByTagName("name");
foreach (XmlNode node in nodeList)
{
    Console.WriteLine(node.InnerText);
}

答案 1 :(得分:1)

例如,创建一个XmlDocument,使用LoadXml方法将字符串加载到其中,然后document.GetElementsByTagName(“name”)[0] .InnerText将提供该值。如果我们知道您的XML结构实际上有多复杂,可能有更好的方法来处理XML。

答案 2 :(得分:0)

假设XPathNavigator位于您想要的元素上,那么nav.Value将返回字符串值。请参阅XPathItem.Value