2011-07-23 9 views
0

DOMNodeListオブジェクトの.getElementsByTagNameはどのように使用できますか? ように:DelphiのDOMElement

procedure TForm1.selecionarClick(Sender: TObject); 
var DOMDocument: iXMLDOMDocument; 
    DOMNodeList: iXMLDOMNodeList; 
    DOMNode: iXMLDOMNode; 
    DOMElement: iXMLDOMElement; 
    i: Integer; 
begin 
     Memo.Text := ''; 
     with DOMDocument do 
     begin 
      DOMDocument := coDOMDocument.Create; 
      DOMDocument.load('C:\Usuarios.xml'); 
      DOMDocument.preserveWhiteSpace := false; 
      DOMNodeList := DOMDocument.selectNodes('.//usuario[@codigo="'+codigo.Text+'"]/'); 
      for i := 0 to DOMNodeList.length - 1 do 
      begin 

      end; 
     end; 
end; 

私のXML構造:

<?xml version="1.0" encoding="utf-8"?> 
<usuarios> 
    <usuario codigo="1"> 
      <nome>Name Node</nome> 
      <sobrenome>Last Name Node</sobrenome> 
      <cidade>City Node</cidade> 
      <estado>State Node</estado> 
      <email>Mail Node</email> 
    </usuario> 
</usuarios> 

答えて

2

getElementsByTagNameのてIXMLDOMNodeListのメンバーではありませんが、のIXMLDOMDocument。 IXMLDOMNodeListでは、あなたがループ構造のこのタイプを使用しなければならないタグ​​名でつかむために:

for i := 0 to DOMNodeList.length - 1 do 
begin 
    DOMNode := DOMNodeList[i]; 
    if DOMNode.nodeName = 'aTagName' then 
    DoStuff(DOMNode); 
    // etc etc.... 
end; 

HTH

0

をIDOMElementがIDOMNodeListを戻すgetElementsByTagNameのをサポートしています。 IDOMElementはIDOMNodeの「サブクラス」です。

var 
DOMNode: IDOMNode; 
DOMElement: IDOMElement; 
begin 
    if Node.DOMNode.nodeType <> ELEMENT_NODE then 
    exit; 

    // Obtain IDOMElement interface 
    DOMElement := (DOMNode as IDOMElement); 
    // Fetch node list 
    DOMNodeList := DOMElement.getElementsByTagName('search text'); 

    // Do whatever with the list.... 
end; 

希望します。 :)

関連する問題