ded*_*oki 12 xml delphi txmldocument xml-parsing
我在解析XML时遇到问题.
如何获得字段值se_url
和phrase
?
我需要link1_1
,link1_2
,key1
,link2_1
,link2_2
,key2
...这是在se_url
和phrase
.
我没有在谷歌中找到怎么做(也没找到关于如何使用的手册TXMLDocument
).
<doc>
<date2>20120214</date2>
<date1>20120214</date1>
<data count="116">
<row>
<search_engines count="2">
<search_engine>
<se_url>link1_1</se_url>
<se_page>1</se_page>
<se_id>2</se_id>
</search_engine>
<search_engine>
<se_url>link1_2</se_url>
<se_page>1</se_page>
<se_id>3</se_id>
</search_engine>
</search_engines>
<denial>0.4889</denial>
<visits>45</visits>
<page_views>52</page_views>
<phrase>key1</phrase>
<visit_time>126</visit_time>
<depth>1.1556</depth>
</row>
<row>
<search_engines count="2">
<search_engine>
<se_url>link2_1</se_url>
<se_page>1</se_page>
<se_id>3</se_id>
</search_engine>
<search_engine>
<se_url>link2_2</se_url>
<se_page>1</se_page>
<se_id>6</se_id>
</search_engine>
</search_engines>
<denial>0.5714</denial>
<visits>42</visits>
<page_views>50</page_views>
<phrase>key2</phrase>
<visit_time>109</visit_time>
<depth>1.1905</depth>
</row>
</data>
</doc>
Run Code Online (Sandbox Code Playgroud)
kob*_*bik 21
试试这个:
uses ComObj, MSXML;
procedure TForm1.Button1Click(Sender: TObject);
var
xml: IXMLDOMDocument;
node: IXMLDomNode;
nodes_row, nodes_se: IXMLDomNodeList;
i, j: Integer;
url: string;
begin
// put url or file name
url := 'http://softez.pp.ua/gg.xml';
xml := CreateOleObject('Microsoft.XMLDOM') as IXMLDOMDocument;
xml.async := False;
xml.load(url); // or use loadXML to load XML document using a supplied string
if xml.parseError.errorCode <> 0 then
raise Exception.Create('XML Load error:' + xml.parseError.reason);
Memo1.Clear;
nodes_row := xml.selectNodes('/doc/data/row');
for i := 0 to nodes_row.length - 1 do
begin
node := nodes_row.item[i];
Memo1.Lines.Add('phrase=' + node.selectSingleNode('phrase').text);
nodes_se := node.selectNodes('search_engines/search_engine/se_url');
for j := 0 to nodes_se.length - 1 do
begin
node := nodes_se.item[j];
Memo1.Lines.Add('url=' + node.text);
end;
Memo1.Lines.Add('--------------');
end;
end;
Run Code Online (Sandbox Code Playgroud)
结果:
phrase=key1
url=link1_1
url=link1_2
--------------
phrase=key2
url=link2_1
url=link2_2
--------------
Run Code Online (Sandbox Code Playgroud)
对IXMLDOMDocument的引用