29 lines
2.1 KiB
Markdown
29 lines
2.1 KiB
Markdown
# perl-XML-DOM
|
|
|
|
This module extends the XML::Parser module by Clark Cooper.
|
|
The XML::Parser module is built on top of XML::Parser::Expat, which is a lower level interface to James Clark's expat library.
|
|
|
|
XML::DOM::Parser is derived from XML::Parser.
|
|
It parses XML strings or files and builds a data structure that conforms to the API of the Document Object Model as described at http://www.w3.org/TR/REC-DOM-Level-1.
|
|
See the XML::Parser manpage for other available features of the XML::DOM::Parser class. Note that the 'Style' property should not be used (it is set internally.)
|
|
|
|
The XML::Parser NoExpand option is more or less supported, in that it will generate EntityReference objects whenever an entity reference is encountered in character data.
|
|
I'm not sure how useful this is. Any comments are welcome.
|
|
|
|
As described in the synopsis, when you create an XML::DOM::Parser object, the parse and parsefile methods create an XML::DOM::Document object from the specified input.
|
|
This Document object can then be examined, modified and written back out to a file or converted to a string.
|
|
|
|
When using XML::DOM with XML::Parser version 2.19 and up, setting the XML::DOM::Parser option KeepCDATA to 1 will store CDATASections in CDATASection nodes, instead of converting them to Text nodes.
|
|
Subsequent CDATASection nodes will be merged into one. Let me know if this is a problem.
|
|
|
|
When using XML::Parser 2.27 and above, you can suppress expansion of parameter entity references (e.g. %pent;) in the DTD, by setting ParseParamEnt to 1 and ExpandParamEnt to 0. See Hidden Nodes for details.
|
|
|
|
A Document has a tree structure consisting of Node objects.
|
|
A Node may contain other nodes, depending on its type.
|
|
A Document may have Element, Text, Comment, and CDATASection nodes.
|
|
Element nodes may have Attr, Element, Text, Comment, and CDATASection nodes.
|
|
The other nodes may not have any child nodes.
|
|
|
|
This module adds several node types that are not part of the DOM spec (yet.) These are: ElementDecl (for <!ELEMENT ...> declarations), AttlistDecl (for <!ATTLIST ...> declarations), XMLDecl (for <?xml ...?> declarations) and AttDef (for attribute definitions in an AttlistDecl.)
|
|
|