當你想獲得通過XPath的XML你應該得到像這樣的:
XmlNode test = root.SelectSingleNode("//moon_phase/percentIlluminated");
或者
XmlNode test = root.SelectSingleNode("//moon_phase/*");
或者
GoogleXMLdoc.SelectSingleNode("//moon_phase[0]");
這是你的結果:
<version>0.1</version><termsofService>http://www.wunderground.com/weather/api/d/terms.html</termsofService>
<features><feature>astronomy</feature></features>
<moon_phase><percentIlluminated>91</percentIlluminated><ageOfMoon>12</ageOfMoon><current_time><hour>1</hour><minute>51</minute></current_time><sunset><hour>17</hour><minute>50</minute></sunset><sunrise><hour>6</hour><minute>51</minute></sunrise></moon_phase><sun_phase><sunset><hour>17</hour><minute>50</minute></sunset><sunrise><hour>6</hour><minute>51</minute></sunrise></sun_phase>
看到這個Site:
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<actors>
<actor id="1">Christian Bale</actor>
<actor id="2">Liam Neeson</actor>
<actor id="3">Michael Caine</actor>
</actors>
<foo:singers>
<foo:singer id="4">Tom Waits</foo:singer>
<foo:singer id="5">B.B. King</foo:singer>
<foo:singer id="6">Ray Charles</foo:singer>
</foo:singers>
</root>
選擇文檔節點
/
選擇「根」元素
/根
選擇所有「演員」元素是「演員」元素的直接子。
/根/演員/演員
選擇所有「歌手」的元素,無論其在文檔中的位置。
//富:歌手
選擇不管「歌手」元素的「身份證」屬性的文檔中的位置。
//富:歌手/ @ ID
選擇第一個 '演員' 元素的文本值。
//演員1 /文()
選擇最後一個 '演員' 元素。
//演員[最後()]
使用它們的位置選擇所述第一和第二 '演員' 的元件。
//演員[位置()< 3]
選擇具有 'id' 屬性的所有 '演員' 的元件。
//演員[@id]
選擇具有 'ID' 的 '演員' 元素屬性的 '3' 的值。
//演員[@ ID = '3']
選擇具有 'ID' 所有 '演員' 的節點屬性值低於或等於 '3'。
//演員[@id < = 3]
選擇 '歌手' 節點的所有子。
/根/富:歌手/ *
選擇文檔中的所有元素。
// *
選擇所有'演員'元素和'歌手'元素。
//演員| //富:歌手
選擇文檔中的第一個元素的名稱。
名(// * 1)
選擇第一個 '演員' 元素的 'id' 屬性的數值。 number(//演員1/@ id)
選擇第一個「actor」元素的「id」屬性的字符串表示值。
字符串(//演員1/@ ID)
選擇第一個 '演員' 元素的文本值的長度。
串長度(//演員1 /文本())
選擇第一個「歌手」元件,即沒有命名空間的本地名稱。
本地名(// foo的:歌手1)
選擇 '歌手' 元素的數量。
count(// foo:singer) 選擇'歌手'元素的'id'屬性的總和。
總和(//富:歌手/ @ ID)
嘗試'// moon_phase' –