Difference between revisions of "Talk:XML Tutorial"

From Free Pascal wiki
Jump to navigationJump to search
m (Confirmation root element)
(writeXMLFile bug)
Line 22: Line 22:
 
The example routines, taken "as is",  does not compile.
 
The example routines, taken "as is",  does not compile.
 
Need to tell what units are needed in the '''uses''' section, at least (no, I don't know what they are) --[[User:Kormoran|Kormoran]] 14:19, 26 March 2011 (CET)
 
Need to tell what units are needed in the '''uses''' section, at least (no, I don't know what they are) --[[User:Kormoran|Kormoran]] 14:19, 26 March 2011 (CET)
 +
 +
=== The writeXMLFile example does not work unless laz2_XMLWrite is used ===
 +
I am using Lazarus 1.0.10 (FPC 2.6.2) on Windows 7. First I tried the example code as is, but it did not work. But when I used the laz2_* equivalents, it worked.

Revision as of 09:02, 13 October 2013

Docelement is not the root of XML tree in DOM

The first sample has

   ReadXMLFile(Doc, 'test.xml');
   PassNode := Doc.DocumentElement.FindNode('password');

Does this mean that DocumentElement is the representation of the top of the XML document in DOM form? Can you also write to that to e.g. change <?xml version="1.0"?> to <?xml version="1.0" standalone="yes"?>

--BigChimp 09:36, 24 July 2011 (CEST)

No, the top of XML document is represented by the Document object itself. DocumentElement is a regular TDOMElement object, which is a child of Document. The reason of having a separate DocumentElement property is that the document may contain comments and processing instructions before and after the root element, and it also may contain a DTD node, so condition DocumentElement=Document.FirstChild is not always true.

The XML declaration <?xml version="1.0"?> is not a part of node tree. DOM specification levels 1 and 2 do not provide any means to modify it, but DOM level 3 introduces Document.xmlVersion, Document.xmlEncoding and Document.xmlStandalone properties for this purpose. xmlStandalone is not yet implemented by fcl-xml.

Gorelkin 09:11, 25 July 2011 (CEST)

Thanks! This clears it up! --BigChimp 14:04, 26 July 2011 (CEST)

Required uses clauses - seems fixed?

The example routines, taken "as is", does not compile. Need to tell what units are needed in the uses section, at least (no, I don't know what they are) --Kormoran 14:19, 26 March 2011 (CET)

The writeXMLFile example does not work unless laz2_XMLWrite is used

I am using Lazarus 1.0.10 (FPC 2.6.2) on Windows 7. First I tried the example code as is, but it did not work. But when I used the laz2_* equivalents, it worked.