2011-08-24 45 views
3

尋找Omni Xml包的可讀範例。omni xml,是否有一個簡單的當前讀取XML文件的例子?

該文檔現在是2個示例,用於加載和寫入,沒有關於讀取,也沒有迭代。

,你可以提供一個簡單的讀取XML,例如一個重複的屬性

<root> 
<value p1=1></value> 
<value p1=2 p2='32432'/> 
<value p1=3 p3='fdsf'><other></other></value> 
</root> 

如何遍歷所有的值,並獲得P1財產。

+0

此問題與[this one]類似(http://stackoverflow.com/questions/5513917/delphi-xe-omnixml-using-selectnode)。它顯示如何訪問子節點。它有幫助嗎? –

回答

6
uses 
    OmniXML, 
    OmniXMLUtils; 

var 
    node : IXMLNode; 
    other: IXMLNode; 
    xml : IXMLDocument; 
begin 
    xml := CreateXMLDoc; 
    if XMLLoadFromFile(xml, 'fname.xml') then begin // 3 more notes 
    for node in XMLEnumNodes(xml,'/root/value') do begin 
     Writeln(GetNodeAttrStr(node, 'p1', ''), ';', GetNodeAttrStr(node, 'p2', ''), ';', 
     GetNodeAttrStr(node, 'p3', '')); 
     other := SelectNode(node, 'other'); 
    end; 
    end; 
end; 

警告:未經測試,用瀏覽器編寫。

+0

XMLEnumNodes,用3個函數重載,用於由節點通過xml或nodelist激活。對於「for」非常有用。 – none