3
我是新來的XML在XML節點,我試圖使用德爾福XE TXMLDocument的在下面的XML訪問數據試圖找到利用ChildNodes.FindNode
<?xml version="1.0" encoding="UTF-8" ?>
<sfc:SFC xmlns:sfc="AWS_SFC">
<ID>4294967295</ID>
<SFC_TYPE>
<WindSpeed>18</WindSpeed>
<WindDir>123.6</WindDir>
<Temperature>22.9</Temperature>
<Pressure>1013.25</Pressure>
<Humidity>57.9</Humidity>
<DewPoint>16.8</DewPoint>
</SFC_TYPE>'
<Location>
<longitude>18.5</longitude>
<latitude>-34.5</latitude>
<altitude>50.8</altitude>
</Location>
<StampDateTime>2012-12-17T09:30:47.0Z</StampDateTime>
</sfc:SFC>
我的代碼開始了這樣的:
var
SFC_Info: IXMLNode;
SFC_Type: IXMLNode;
begin
SFC_Info := XMLDocument1.DocumentElement;
SFC_Type := SFC_Info.ChildNodes.First;
while (SFC_Type.NodeName <> 'SFC_TYPE') do
SFC_Type := SFC_TYPE.NextSibling;
memDebug.Lines.Add('Wind speed = ' + SFC_Type.ChildNodes.FindNode('WindSpeed').Text);
etc
這是我想要的,但使用循環似乎凌亂。我本以爲訪問'SFC_TYPE'節點可以用
SFC_Type := SFC_Info.ChildNodes.FindNode('SFC_TYPE');
但是這返回nil。
我錯過了什麼嗎?
@ User2168821的您的命名空間的複雜性是非常有限的。我對包含幾個命名空間的XML也有同樣的問題,並決定首先將它們全部剝離,這樣我就不會一直遇到這個問題。 – 2013-03-14 10:04:56
謝謝!空白的NameSpaceURI參數有所不同。 – user2168821 2013-03-14 11:44:17
@JanDoggen:只有當孩子節點沒有攜帶父節點的命名空間時纔會出現問題(這種方式不正確) – whosrdaddy 2013-03-14 19:12:19