我会用我已经做过的事情来解决问题。所以我有以下 XMLfile:
<places yahoo:start="0" yahoo:count="23" yahoo:total="23">
<place yahoo:uri="http://where.yahooapis.com/v1/place/523920" xml:lang="en-us">
<woeid>523920</woeid>
<placeTypeName code="7">Town</placeTypeName>
<name>Warsaw</name>
<country type="Country" code="PL" woeid="23424923">Poland</country>
...
</place>
...
</places>
我跳过了不必要的部分(我相信至少如此)。无论如何,有 <places> 包含可变数量的 <place> 在这种特殊情况下它是 23。我执行以下代码:
List<XElement> list = XElement.Parse(e.Result).Elements().ToList();
结果,我有 23 个 XElements(位置)的列表,但由于某种原因,我无法获得 <woeid> 内的值波纹管代码不起作用:-(
foreach (XElement element in list) {
String woeid = element.Element("woeid").Value;
// ... sth else to do with each woeid
}
你能帮我得到这些值吗?
[更新]
我想我已经通过从上下文菜单中获取页面源找到了您一直在要求 @LB 的内容,就是这样。你能帮助我吗?
<?xml version="1.0" encoding="UTF-8"?>
<places xmlns="http://where.yahooapis.com/v1/schema.rng" xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:start="0" yahoo:count="23" yahoo:total="23">
[解决了]
感谢您提供有关名称空间的提示。使用试验和错误方法我已经做到了。答案是,您必须在元素名称之前的括号中添加命名空间,如下所示。
String woeid = element.Element("{http://where.yahooapis.com/v1/schema.rng}woeid").Value;
现在它只是简单地工作。再次感谢。