Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将xml值检索到字符串中_C#_Asp.net_Xml - Fatal编程技术网

C# 将xml值检索到字符串中

C# 将xml值检索到字符串中,c#,asp.net,xml,C#,Asp.net,Xml,在下面的XML结构中,如何检索名称值并将其放入字符串中? (我在方法中使用XPathNavigator) 但是到目前为止,我们还没有机会通过nav获得这个值 其目的是能够将其用于以下对象,以便我可以将名称放入其中 test t = new test() { Name = name, Questions= new List<Questions>() }; testt=newtest(){Name=Name,Questions=newlist()}; 致以最诚挚的问候。例如,创建一个

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

但是到目前为止,我们还没有机会通过nav获得这个值

其目的是能够将其用于以下对象,以便我可以将名称放入其中

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

致以最诚挚的问候。

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

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

XPathNodeIterator iter = xml.CreateNavigator().Select("//test/name");
while (iter.MoveNext())
{
    var nav = iter.Current;
    string name = nav.Value;
    Console.WriteLine(name);
}
或者,您可以使用:


假设XPathNavigator位于所需的元素上,则
nav.Value
将返回字符串值。请参阅。

忘记提到我正在使用Xpath导航器,在主帖子中编辑:)@DelvinK查看我的编辑是否有帮助。如果没有,请分享XPath表达式的样子。干杯,但还有一个问题。因为在我的列表中,我有几个名字,它总是显示第一个,而不是第一个,第二个,第三个等等(在第一个问题中更新),虽然当我把名字作为属性时,它显示了我所有的名字:一,二,三,现在我只得到一个作为结果谢谢!我通过以下表达式成功地得到了我想要的:string name=nav.Select(“/testsystem//test/name”).Current.ToString()@德尔文克太棒了!您可能应该使用
“/testsystem/test/name”
(注意不要重复
/
)。这样,
名称
节点的路径是特定的。double
/
可以工作,但它用于查找节点,无论节点出现在何处。我使用它是为了避免指定根,虽然显式是一种很好的做法。我是否使用nav.SelectSingleNode定位它,然后稍后再获取值?您可以通过多种方式定位它,是的,SelectSingleNode将是一种方式。然后一旦它被定位,就得到值。
test t = new test() { Name = name, Questions= new List<Questions>() };
XPathNodeIterator iter = xml.CreateNavigator().Select("//test/name");
while (iter.MoveNext())
{
    var nav = iter.Current;
    string name = nav.Value;
    Console.WriteLine(name);
}
var nodeList = xml.GetElementsByTagName("name");
foreach (XmlNode node in nodeList)
{
    Console.WriteLine(node.InnerText);
}