{
    "mode": "perldoc",
    "parameter": "XML::DOM-ecmascript",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ADOM-ecmascript/json",
    "generated": "2026-06-12T12:47:43Z",
    "sections": {
        "NAME": {
            "content": "DOM-ecmascript - XML::Grove and ECMA Script Language Binding\n\nXML::Grove and DOM Level One\nXML::Grove is similar in concept to the ECMA Script Language Binding to DOM Level 1 Core\n(Appendix E of the DOM Recommendation).\n\nhttp://www.w3.org/TR/REC-DOM-Level-1/ ecma-script-language-binding.html\n<http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html>\n\nThe ECMA Script Language Binding presents DOM properties as ECMA Script object properties. The\nsame is true for XML::Grove, XML::Grove presents DOM properties as Perl blessed hashes.\n\nThe biggest difference between the ECMA Script Language Binding and XML::Grove is that\nXML::Grove uses a Perl hash for nodes, Perl arrays for NodeLists, Perl hashes for NamedNodeLists\nso those object classes don't exist in XML::Grove. Because those classes don't exist, you use\nordinary Perl syntax for manipulating the DOM properties (lists and named node lists) instead of\nmethods like `\"nextSibling()\"' or `\"replaceChild()\"'. Element attributes in XML::Grove are\nstored in Perl hashes; attribute types are available through the document object.\n\nAnother difference is that XML::Grove attempts to marry the PerlSAX and DOM naming so that less\n(no?) name-changing occurs between using PerlSAX interfaces and filters and DOM modules. Where\nconflicts occur, the PerlSAX naming is used.\n\nXML::Grove uses a blessed hash for nodes, so the node type is available using Perl's `\"ref()\"'\ninstead of using a `\"nodeType()\"' method and all class names are prefixed with `\"XML::Grove::\"'.\n\nThe following object descriptions are the most basic and common provided by many PerlSAX\nparsers. PerlSAX parsers often provide additional properties or objects, refer to your PerlSAX\nparser documentation for details.\n",
            "subsections": []
        },
        "Document Object Model Level 1 Core": {
            "content": "",
            "subsections": [
                {
                    "name": "Object XML::Grove::Document",
                    "content": "Contents    The children of this object. This property is an array.\n\nEntities    The entities declared in this document. This property is a hash of\nXML::Grove::Entity objects keyed by entity name.\n\nNotations   The notations declared in this document. This property is a hash of\nXML::Grove::Notation objects keyed by notation name.\n"
                },
                {
                    "name": "Object XML::Grove::Element",
                    "content": "Name        The tag type name for this element. This property is a string.\n\nAttributes  The attributes for this element. This property is a hash and it's hash values are\nstrings (or arrays with some grove builders).\n\nContents    The children of this object. This property is an array of XML::Grove objects.\n"
                },
                {
                    "name": "Object XML::Grove::Characters",
                    "content": "Data        The text of the character data. This property is a string.\n"
                },
                {
                    "name": "Object XML::Grove::Comment",
                    "content": "Data        The text of the character data. This property is a string.\n"
                },
                {
                    "name": "Object XML::Grove::CData",
                    "content": "The \"CData\" object is called a \"CDATASection\" in DOM.\n\nData        The text of the character data. This property is a string.\n"
                },
                {
                    "name": "Object XML::Grove::Notation",
                    "content": "Name        The name of this notation. This property is a string.\n\nSystemId    The system identifier of this notation. This property is a string.\n\nPublicId    The public identifier of this notation. This property is a string.\n"
                },
                {
                    "name": "Object XML::Grove::Entity",
                    "content": "Name        The name of this entity. This property is a string.\n\nSystemId    The system identifier of this notation. This property is a string.\n\nPublicId    The public identifier of this notation. This property is a string.\n\nNotation    The notation declared for this entity. This property is either the name of the\nnotation as a string or an \"XML::Grove::Notation\" object.\n"
                },
                {
                    "name": "Object XML::Grove::PI",
                    "content": "The \"PI\" object is called a \"ProcessingInstruction\" in DOM.\n\nTarget      The target of the processing instruction. This property is a string.\n\nData        The text of the processing instruction. This property is a string.\n"
                }
            ]
        }
    },
    "summary": "DOM-ecmascript - XML::Grove and ECMA Script Language Binding  XML::Grove and DOM Level One XML::Grove is similar in concept to the ECMA Script Language Binding to DOM Level 1 Core (Appendix E of the DOM Recommendation).  http://www.w3.org/TR/REC-DOM-Level-1/ ecma-script-language-binding.html <http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html>  The ECMA Script Language Binding presents DOM properties as ECMA Script object properties. The same is true for XML::Grove, XML::Grove presents DOM properties as Perl blessed hashes.  The biggest difference between the ECMA Script Language Binding and XML::Grove is that XML::Grove uses a Perl hash for nodes, Perl arrays for NodeLists, Perl hashes for NamedNodeLists so those object classes don't exist in XML::Grove. Because those classes don't exist, you use ordinary Perl syntax for manipulating the DOM properties (lists and named node lists) instead of methods like `\"nextSibling()\"' or `\"replaceChild()\"'. Element attributes in XML::Grove are stored in Perl hashes; attribute types are available through the document object.  Another difference is that XML::Grove attempts to marry the PerlSAX and DOM naming so that less (no?) name-changing occurs between using PerlSAX interfaces and filters and DOM modules. Where conflicts occur, the PerlSAX naming is used.  XML::Grove uses a blessed hash for nodes, so the node type is available using Perl's `\"ref()\"' instead of using a `\"nodeType()\"' method and all class names are prefixed with `\"XML::Grove::\"'.  The following object descriptions are the most basic and common provided by many PerlSAX parsers. PerlSAX parsers often provide additional properties or objects, refer to your PerlSAX parser documentation for details.",
    "flags": [],
    "examples": [],
    "see_also": []
}