C#XML无法获取子节点
我需要获取一个有点复杂的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<
<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名称空间并从那里开始。