Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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#_Xml - Fatal编程技术网

C#XML无法获取子节点

C#XML无法获取子节点,c#,xml,C#,Xml,我需要获取一个有点复杂的XML 就像: <Response xmlns="http://somewhere/somewhere/"> <Params> <Param> <Name>some data</Name> <Value xmlns="">abcdedsfeesfxyz0123456789</Value> </Param> <Param> <Name>Target<

我需要获取一个有点复杂的XML 就像:

<Response xmlns="http://somewhere/somewhere/">
<Params>
<Param>
<Name>some data</Name>
<Value xmlns="">abcdedsfeesfxyz0123456789</Value>
</Param>
<Param>
<Name>Target</Name>
<Value xmlns="">xml</Value>
</Param>
<Param>
<Name>Platform</Name>
<Value xmlns="">Mobile</Value>
</Param>
</Params>
<Results>
<Groups>
<Group>
<Key>ABCWXYZ0123456789</Key>
<TotalCount>1208</TotalCount>
<Useful>...</Useful>
</Group>
</Groups>
</Results>
</Response>
xmlData

谢谢

我觉得这很管用

XmlNodeList myElemList = xdoc.GetElementsByTagName("Usful");

我觉得这很管用

XmlNodeList myElemList = xdoc.GetElementsByTagName("Usful");
必须使用,因为已声明名称空间(此行
xmlns=)http://somewhere/somewhere/“

看到这个问题的答案了吗

理解Xml名称空间将极大地帮助您。试试这篇文章

必须使用,因为已声明名称空间(此行
xmlns=”http://somewhere/somewhere/“

看到这个问题的答案了吗


理解Xml名称空间将极大地帮助您。试试这篇文章

响应元素定义了默认名称空间

您需要在传递给SelectSingleNode的XPath表达式中解析此命名空间。您可以使用XmlNamespaceManager来实现这一点:

XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(returnXml);

var mng = new XmlNamespaceManager(xdoc.NameTable);
mng.AddNamespace("foo", "http://somewhere/somewhere/");

XmlNode xmlData = xdoc.SelectSingleNode("foo:Response",mng);
见MSDN:和

响应元素定义了默认名称空间

您需要在传递给SelectSingleNode的XPath表达式中解析此命名空间。您可以使用XmlNamespaceManager来实现这一点:

XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(returnXml);

var mng = new XmlNamespaceManager(xdoc.NameTable);
mng.AddNamespace("foo", "http://somewhere/somewhere/");

XmlNode xmlData = xdoc.SelectSingleNode("foo:Response",mng);
见MSDN:和

这是因为标记名不考虑名称空间。Xml名称由两部分组成;名称空间和本地名称。命名空间可以为空。更好地理解xml名称空间并从那里开始。这是因为标记名不考虑名称空间。Xml名称由两部分组成;名称空间和本地名称。命名空间可以为空。更好地理解xml名称空间并从那里开始。