在以下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>() };
最好的问候。
答案 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。