我有如下数据:
<?xml version="1.0" encoding="GB2312" ?>
<Command cmdid="0x8002003" sequence_id="4">
<items termid="11" state="0" position="0" prover="3_0001" />
<items termid="12" state="1" position="0" prover="3_0001"/>
<items termid="13" state="3" position="0" prover="3_0001"/>
</Command>nodes[1]的值是结点Command
请问如何读取 termid="11" 的state 值呢?
<?xml version="1.0" encoding="GB2312" ?>
<Command cmdid="0x8002003" sequence_id="4">
<items termid="11" state="0" position="0" prover="3_0001" />
<items termid="12" state="1" position="0" prover="3_0001"/>
<items termid="13" state="3" position="0" prover="3_0001"/>
</Command>nodes[1]的值是结点Command
请问如何读取 termid="11" 的state 值呢?
{*
需要Uses的单有: XMLDoc, XMLIntf *注*: 我使用的是Delphi2006.
}
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
XMLString: string;
XMLDoc: IXMLDocument;
XMLNode: IXMLNode;
XMLNodes: IXMLNodeList;
begin
XMLString := '<?xml version= "1.0" encoding= "GB2312" ?>';
XMLString := XMLString + '<Command cmdid="0x8002003" sequence_id="4">';
XMLString := XMLString + '<items termid="11" state="0" position="0" prover="3_0001"/>';
XMLString := XMLString + '<items termid="12" state="1" position="0" prover="3_0001"/>';
XMLString := XMLString + '<items termid="1" state="3" position="0" prover="3_0001"/>';
XMLString := XMLString + '</Command>'; XMLDoc := NewXmlDocument;
XMLDoc.LoadFromXML(XMLString); ShowMessage('cmdid: ' + XMLDoc.DocumentElement.AttributeNodes.FindNode('cmdid').NodeValue);
ShowMessage('sequence_id: ' + XMLDoc.DocumentElement.AttributeNodes.FindNode('sequence_id').NodeValue); XMLNodes := XMLDoc.DocumentElement.ChildNodes;
for I := 0 to XMLNodes.Count - 1 do
begin
XMLNode := XMLNodes.Nodes[I];
ShowMessage('termid: ' + XMLNode.AttributeNodes.FindNode('termid').NodeValue);
ShowMessage('state: ' + XMLNode.AttributeNodes.FindNode('state').NodeValue);
ShowMessage('position: ' + XMLNode.AttributeNodes.FindNode('position').NodeValue);
ShowMessage('prover: ' + XMLNode.AttributeNodes.FindNode('prover').NodeValue);
end;
end;