我将与我已经完成的工作进行讨论。所以我有以下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>
我跳过了不必要的部分(我相信至少是这样)。无论如何有&lt; places&gt;其中包含可变数量的&lt; place&gt;在这个特殊情况下它是23.我做了以下代码:
List<XElement> list = XElement.Parse(e.Result).Elements().ToList();
因此,我有23个XElements(地点)的列表,但由于某种原因,我无法得到里面的值&lt; woeid&gt; Bellow代码不起作用: - (
foreach (XElement element in list) {
String woeid = element.Element("woeid").Value;
// ... sth else to do with each woeid
}
你能帮助我获得这些价值吗?
[UPDATE]
我想我已经通过从上下文菜单中获取页面源来找到你一直要求的@L.B.这就是它。你能救我吗?
<?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;
现在它只是起作用。再次感谢。