[英]How to read XML file in Delphi?
這是我想做的事情。 我的程序與此配合良好:
XMLText = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' +
'<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
'<title>Harry Potter</title>' +
'<author>J. K. Rowling.</author>' +
'<length>400</length>' +
'</book>';
procedure TForm1.Button1Click(Sender: TObject);
var
XMLDoc: IXMLDOMDocument;
Node, SibNode: IXMLDOMNode;
begin
Memo1.Clear;
XMLDoc := CoDOMDocument.Create;
XMLDoc.loadXML(XMLText);
end;
現在,我想從項目所在的同一文件夾中導入包含6000本書(books.xml)的XML文件,而不是const XMLText。 我怎樣才能做到這一點?
謝謝! :)
選項1:直接從磁盤加載
IXMLDomDocument
具有一個接受文件名的load
方法。 您可以使用該方法代替當前使用的loadXML
。
選項2:首先將文件加載到字符串中
或者,您可以先將文件加載到字符串中。 在這種情況下,我幾乎找不到任何理由,但知道這一點永遠不會有任何傷害。 :)
看一下TStringStream
,它具有一個LoadFromFile
方法,可以從磁盤加載文件。 您可以使用它將整個books.xml
加載到內存中。 加載后,您可以在stringstreams的傳遞DataString
屬性的loadXML
方法。 此屬性以字符串形式返回流(包含XML)的全部內容。
只要改變loadXML
來load('YourFileName.xml')
procedure TForm1.Button1Click(Sender: TObject);
var
XMLDoc: IXMLDOMDocument;
begin
XMLDoc := CoDOMDocument.Create;
XMLDoc.load('MyBooks.xml');
Memo1.Lines.Text := XMLDoc.xml;
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.