ObjectXmlDocument
XMLDocument is xmlEen object van de module, dat het gehele XML-document vertegenwoordigt en toegang biedt tot het gehele document.
XmlDocument is de root van een documentboom en bevat alle knooppunten in het gehele XML-document. Het XmlDocument-object biedt ook de volgende functies:
- Maak elementknooppunten, tekstknooppunten, opmerkingen, verwerkingsinstructies, enz.
- Documenteigenschappen en gerelateerde informatie openen en wijzigen (zoals DTD-opmerkingen en documentdeclaraties)
- Parseer XML-documenten
Het volgende is voorbeeldcode die het XmlDocument-object gebruikt om een XML-document te parseren:
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
In de bovenstaande code gebruiken we eerst fs
de modulemethode readFile()
om een XML-bestand te lezen en de bestandsstroom toe te wijzen aan de variabele xmlStr
. Vervolgens gebruiken we [xml](../../module/ifs/xml.md)
de methode van de module om het XML-bestand te parseren en het parse()
geparseerde object aan een variabele toe te wijzen . Ten slotte gebruiken we het attribuut van om het hoofdknooppunt van het document op te halen, de knooppuntnaam op te halen en deze naar de console uit te voeren.XmlDocument
xmlDoc
xmlDoc
documentElement
Omdat XmlDocument de toegang tot het gehele XML-document is, kunnen we hierdoor documentgerelateerde informatie verkrijgen en wijzigen. We kunnen bijvoorbeeld de XML-versie en de zelfstandige kenmerken van het document verkrijgen en wijzigen via xmlDoc.xmlVersion
en respectievelijk. xmlDoc.xmlStandalone
Via de methode kunnen we ook xmlDoc.createProcessingInstruction()
nieuwe verwerkingsinstructieknooppunten creëren.
Het XmlDocument-object is een zeer krachtig type dat ons veel gemak biedt bij het verwerken en parseren van XML-bestanden.
erfenis relatie
Constructeur
XmlDocument
Construeer een XmlDocument-object
1new XmlDocument(String type = "text/xml");
Oproepparameters:
- type: String, specificeert het type documentobject, de standaardwaarde is "text/xml", als u html moet verwerken, moet u "text/html" opgeven
eigenschappen van leden
inputEncoding
Tekenreeks, retourneert de codering die voor het document is gebruikt (bij parseren)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Boolean, stelt in of retourneert of het document op zichzelf staat
1Boolean XmlDocument.xmlStandalone;
xmlVersion
String, stelt de XML-versie van het document in of retourneert deze
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, retourneert de documenttypeverklaring die betrekking heeft op het document
1readonly XmlDocumentType XmlDocument.doctype;
Voor XML-documenten zonder DTD wordt null geretourneerd. Deze accommodatie biedtXmlDocumentTypeDirecte toegang tot het object (een onderliggend knooppunt van XmlDocument).
documentElement
XmlElement, retourneert het hoofdknooppunt van het document
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, retourneert het hoofdknooppunt van het HTML-document, alleen geldig in de html-modus
1readonly XmlElement XmlDocument.head;
title
String, retourneert de inhoud van het titelknooppunt van het HTML-document, alleen geldig in html-modus
1readonly String XmlDocument.title;
body
XmlElement, retourneert het hoofdknooppunt van het HTML-document, alleen geldig in de html-modus
1readonly XmlElement XmlDocument.body;
nodeType
Geheel getal, retourneert het knooppunttype van het knooppunt
1readonly Integer XmlDocument.nodeType;
Het nodeType van verschillende objecten retourneert verschillende waarden:
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXT_NODE(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: DOCUMENT_NODE(9)
- XmlDocumentType: DOCUMENT_TYPE_NODE(10)
nodeName
String, retourneert de naam van het knooppunt, afhankelijk van het type
1readonly String XmlDocument.nodeName;
De nodeName van verschillende objecten retourneert verschillende waarden:
- XmlElement:elementnaam
- XmlAttr: attribuut naam
- XmlText: #tekst
- XmlCDATASection: #cdata-sectie
- XmlProcessingInstruction: Retourneert het opgegeven doeldoel
- XmlComment: #opmerking
- XmlDocument: #document
- XmlDocumentType: doctypenaam
nodeValue
String, retourneert de naam van het knooppunt, afhankelijk van het type
1String XmlDocument.nodeValue;
De nodeName van verschillende objecten retourneert verschillende waarden:
- XmlElement: nul
- XmlAttr: Attribuutwaarde
- XmlText: de inhoud van het knooppunt
- XmlCDATASection: de inhoud van het knooppunt
- XmlProcessingInstruction: Retourneert de opgegeven inhoudsgegevens
- XmlComment: annotatietekst
- XmlDocument: nul
- XmlDocumentType: nul
ownerDocument
XmlDocument, retourneert het hoofdelement van het knooppunt (XmlDocument-object)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, kan het bovenliggende knooppunt van een knooppunt retourneren
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, retourneert de knooppuntenlijst van de onderliggende knooppunten van het opgegeven knooppunt
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, retourneert de knooppuntenlijst van de onderliggende elementknooppunten van het opgegeven knooppunt.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, retourneert het eerste onderliggende knooppunt van het knooppunt
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, retourneert het laatste onderliggende knooppunt van het knooppunt
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, retourneert het knooppunt dat onmiddellijk aan een knooppunt voorafgaat (op hetzelfde boomniveau). Als een dergelijk knooppunt niet bestaat, retourneert deze eigenschap null.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, retourneert het knooppunt dat onmiddellijk volgt op een element (op hetzelfde boomniveau). Als zo'n knooppunt niet bestaat, retourneert het attribuut null.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, retourneert het eerste onderliggende elementknooppunt van het knooppunt
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, retourneert het laatste onderliggende elementknooppunt van het knooppunt
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, retourneert het elementknooppunt dat onmiddellijk aan een knooppunt voorafgaat (op hetzelfde boomniveau). Als zo'n knooppunt niet bestaat, retourneert deze eigenschap null.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, retourneert het elementknooppunt dat onmiddellijk volgt op een element (op hetzelfde boomniveau). Als zo'n knooppunt niet bestaat, retourneert het attribuut null.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
String, query's en stelt de tekst van het geselecteerde element in. Retourneert bij het opvragen de waarden van alle tekstknooppunten binnen het elementknooppunt; bij het instellen worden alle onderliggende knooppunten verwijderd en vervangen door een enkel tekstknooppunt.
1String XmlDocument.textContent;
lid functie
load
Het document is samengesteld door het parseren van een XML/HTML-tekenreeks. Meertaligheid wordt niet ondersteund.
1XmlDocument.load(String source);
Oproepparameters:
- source: String, de XML/HTML-tekst die moet worden geparseerd, afhankelijk van het type waarop het document is gemaakt
Het document wordt samengesteld door het parseren van een binaire XML/HTML-reeks en automatisch geconverteerd volgens de taal.
1XmlDocument.load(Buffer source);
Oproepparameters:
- source:Buffer, de XML/HTML-tekst die moet worden geparseerd, afhankelijk van het type document toen het werd gemaakt
getElementsByTagName
Retourneert een knooppuntenlijst met alle elementen met de opgegeven naam
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Oproepparameters:
- tagName: String, de tagnaam die moet worden opgehaald. De waarde "*" komt overeen met alle tags
Resultaten retourneren:
- XmlNodeList, met de opgegeven tag in de documentboomXmlElementKnooppuntXmlNodeListbijeenkomen. De volgorde van de geretourneerde elementknooppunten is de volgorde waarin ze in het brondocument verschijnen.
Deze methode retourneert aXmlNodeListObject (kan worden verwerkt als een alleen-lezen array) waarin alle tags in het document met de opgegeven tagnaam worden opgeslagenXmlElementKnooppunten worden opgeslagen in de volgorde waarin ze in het brondocument verschijnen.XmlNodeListHet object is "live", dat wil zeggen dat als een element met de opgegeven tagnaam in het document wordt toegevoegd of verwijderd, de inhoud ervan indien nodig automatisch wordt bijgewerkt.
getElementsByTagNameNS
Retourneert een knooppuntenlijst met alle elementen met de opgegeven naamruimte en naam
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Oproepparameters:
- namespaceURI: String, specificeert de naamruimte-URI die moet worden opgehaald. De waarde "*" komt overeen met alle tags
- localName: String, de tagnaam die moet worden opgehaald. De waarde "*" komt overeen met alle tags
Resultaten retourneren:
- XmlNodeList, met de opgegeven tag in de documentboomXmlElementKnooppuntXmlNodeListbijeenkomen. De volgorde van de geretourneerde elementknooppunten is de volgorde waarin ze in het brondocument verschijnen.
Deze methode is vergelijkbaar met de methode getElementsByTagName(), behalve dat deze elementen ophaalt op basis van naamruimte en naam.
getElementById
Retourneert het element met het opgegeven id-attribuut
1XmlElement XmlDocument.getElementById(String id);
Oproepparameters:
- id: String, de id die moet worden opgehaald
Resultaten retourneren:
- XmlElement, met het opgegeven id-attribuut in de knooppuntboomXmlElementknooppunt
Deze methode doorkruist de onderliggende knooppunten van het document en retourneert aXmlElementEen knooppuntobject dat het eerste documentelement met het opgegeven id-attribuut vertegenwoordigt. .
getElementsByClassName
Retourneert een knooppuntenlijst met alle elementen met de opgegeven klassenaam
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Oproepparameters:
- className: String, de klassenaam die moet worden opgehaald
Resultaten retourneren:
- XmlNodeList, met de opgegeven klassenaam in de documentboomXmlElementKnooppuntXmlNodeListbijeenkomen. De volgorde van de geretourneerde elementknooppunten is de volgorde waarin ze in het brondocument verschijnen.
Deze methode retourneert aXmlNodeListObject (kan worden verwerkt als een alleen-lezen array), waarin alle bestanden met de opgegeven klassenaam in het document worden opgeslagenXmlElementKnooppunten worden opgeslagen in de volgorde waarin ze in het brondocument verschijnen.XmlNodeListHet object is "live", dat wil zeggen dat als een element met de opgegeven tagnaam in het document wordt toegevoegd of verwijderd, de inhoud ervan indien nodig automatisch wordt bijgewerkt.
createElement
Elementknooppunt maken
1XmlElement XmlDocument.createElement(String tagName);
Oproepparameters:
- tagName: String, specificeert de opgegeven naam van het elementknooppunt
Resultaten retourneren:
- XmlElement, retourneert het nieuw gemaakteXmlElementknooppunt, met de opgegeven labelnaam
createElementNS
Creëert een elementknooppunt met de opgegeven naamruimte
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Oproepparameters:
- namespaceURI: String, specificeert de naamruimte-URI van het elementknooppunt
- qualifiedName: String, specificeert de opgegeven naam van het elementknooppunt
Resultaten retourneren:
- XmlElement, retourneert het nieuw gemaakteXmlElementknooppunt, met de opgegeven labelnaam
createTextNode
Maak een tekstknooppunt
1XmlText XmlDocument.createTextNode(String data);
Oproepparameters:
- data: String, specificeert de tekst van dit knooppunt
Resultaten retourneren:
- XmlText, retourneert het nieuw gemaakteXmlTextKnooppunt, dat de opgegeven gegevensreeks vertegenwoordigt
createComment
Annotatieknooppunt maken
1XmlComment XmlDocument.createComment(String data);
Oproepparameters:
- data: String, specificeert de commentaartekst van dit knooppunt
Resultaten retourneren:
- XmlComment, retourneert het nieuw gemaakteXmlCommentKnooppunt, de commentaartekst zijn de opgegeven gegevens
createCDATASection
creërenXmlCDATASectionknooppunt
1XmlCDATASection XmlDocument.createCDATASection(String data);
Oproepparameters:
- data: String, geeft aan dat dit knooppunt CDATA-gegevens specificeert
Resultaten retourneren:
- XmlCDATASection, retourneert het nieuw gemaakteXmlCDATASectionKnooppunt, de inhoud zijn de opgegeven gegevens
createProcessingInstruction
creërenXmlProcessingInstructionknooppunt
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Oproepparameters:
- target: String, specificeert het doel van de verwerkingsinstructie
- data: String, specificeert de inhoudstekst van de verwerkingsinstructie
Resultaten retourneren:
- XmlProcessingInstruction, het nieuw gemaakte ProcessingInstruction-knooppunt
hasChildNodes
Vraag of er onderliggende knooppunten zijn
1Boolean XmlDocument.hasChildNodes();
Resultaten retourneren:
- Boolean, retourneert true als er onderliggende knooppunten zijn, retourneert anders false
normalize
Voeg aangrenzende tekstknooppunten samen en verwijder lege tekstknooppunten
1XmlDocument.normalize();
Deze methode doorloopt alle onderliggende knooppunten van het huidige knooppunt en normaliseert het document door lege tekstknooppunten te verwijderen en alle aangrenzende tekstknooppunten samen te voegen. Deze methode is handig voor het vereenvoudigen van de structuur van de documentboom na het invoegen of verwijderen van knooppunten.
cloneNode
Creëert een exacte kopie van het opgegeven knooppunt
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Oproepparameters:
- deep: Booleaans, of er diep gekopieerd moet worden; indien waar, zal het gekloonde knooppunt alle onderliggende knooppunten van het oorspronkelijke knooppunt klonen
Resultaten retourneren:
- XmlNode, retourneert het gekopieerde knooppunt
Deze methode kopieert en retourneert een kopie van het knooppunt waarop deze is aangeroepen. Als het argument dat eraan wordt doorgegeven waar is, zal het ook recursief alle onderliggende knooppunten van het huidige knooppunt kopiëren. Anders kopieert het alleen het huidige knooppunt. Het geretourneerde knooppunt behoort niet tot de documentboom en de eigenschap parentNode is nul. Wanneer een Elementknooppunt wordt gekopieerd, worden alle eigenschappen ervan gekopieerd.
lookupPrefix
Retourneert het voorvoegsel dat overeenkomt met de opgegeven naamruimte-URI op het huidige knooppunt
1String XmlDocument.lookupPrefix(String namespaceURI);
Oproepparameters:
- namespaceURI: String, specificeert de overeenkomende naamruimte-URI
Resultaten retourneren:
- String, retourneert het overeenkomende voorvoegsel, retourneert null als het niet overeenkomt.
lookupNamespaceURI
Retourneert de naamruimte-URI die overeenkomt met het opgegeven voorvoegsel op het huidige knooppunt
1String XmlDocument.lookupNamespaceURI(String prefix);
Oproepparameters:
- prefix: String, specificeert het overeenkomende voorvoegsel
Resultaten retourneren:
- String, retourneert de overeenkomende naamruimte-URI, retourneert null als deze niet overeenkomt.
insertBefore
Voeg een nieuw onderliggend knooppunt in vóór een bestaand onderliggend knooppunt
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Oproepparameters:
- newChild:XmlNode, voeg een nieuw knooppunt in
- refChild:XmlNode, plaats een nieuw knooppunt vóór dit knooppunt
Resultaten retourneren:
- XmlNode, retourneert het nieuwe onderliggende knooppunt
Als newChild al bestaat in de documentboom, wordt het verwijderd uit de documentboom en opnieuw ingevoegd op de nieuwe positie. Knooppunten uit één document (of knooppunten die door één document zijn gemaakt) kunnen niet in een ander document worden ingevoegd. Dat wil zeggen dat het kenmerk ownDocument van newChild hetzelfde moet zijn als het kenmerk ownDocument van het huidige knooppunt.
insertAfter
Voeg een nieuw onderliggend knooppunt in na een bestaand onderliggend knooppunt
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Oproepparameters:
- newChild:XmlNode, voeg een nieuw knooppunt in
- refChild:XmlNode, voeg een nieuw knooppunt in na dit knooppunt
Resultaten retourneren:
- XmlNode, retourneert het nieuwe onderliggende knooppunt
Als newChild al bestaat in de documentboom, wordt het verwijderd uit de documentboom en opnieuw ingevoegd op de nieuwe positie. Knooppunten uit één document (of knooppunten die door één document zijn gemaakt) kunnen niet in een ander document worden ingevoegd. Dat wil zeggen dat het kenmerk ownDocument van newChild hetzelfde moet zijn als het kenmerk ownDocument van het huidige knooppunt.
appendChild
Voegt een nieuw onderliggend knooppunt toe aan het einde van de lijst met onderliggende knooppunten van een knooppunt
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Oproepparameters:
- newChild:XmlNode, geef het toegevoegde knooppunt op
Resultaten retourneren:
- XmlNode, retourneert dit nieuwe onderliggende knooppunt
Als newChild al bestaat in de documentboom, wordt het verwijderd uit de documentboom en opnieuw ingevoegd op de nieuwe positie. Knooppunten uit één document (of knooppunten die door één document zijn gemaakt) kunnen niet in een ander document worden ingevoegd. Dat wil zeggen dat het kenmerk ownDocument van newChild hetzelfde moet zijn als het kenmerk ownDocument van het huidige knooppunt.
replaceChild
Vervang een onderliggend knooppunt door een ander
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Oproepparameters:
- newChild:XmlNode, geef het nieuwe knooppunt op
- oldChild:XmlNode, specificeert het knooppunt dat moet worden vervangen
Resultaten retourneren:
- XmlNode, Als de vervanging succesvol is, kan deze methode het vervangen knooppunt retourneren. Als de vervanging mislukt, retourneert deze null.
Als newChild al bestaat in de documentboom, wordt het verwijderd uit de documentboom en opnieuw ingevoegd op de nieuwe positie. Knooppunten uit één document (of knooppunten die door één document zijn gemaakt) kunnen niet in een ander document worden ingevoegd. Dat wil zeggen dat het kenmerk ownDocument van newChild hetzelfde moet zijn als het kenmerk ownDocument van het huidige knooppunt.
removeChild
Verwijder een knooppunt uit de lijst met onderliggende knooppunten
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Oproepparameters:
- oldChild:XmlNode, geeft het knooppunt op dat moet worden verwijderd
Resultaten retourneren:
- XmlNode, Als de verwijdering succesvol is, kan deze methode het verwijderde knooppunt retourneren. Als dit mislukt, retourneert deze null.
toString
Retourneert de tekenreeksweergave van het object. Over het algemeen wordt '[Native Object]' geretourneerd. Het object kan opnieuw worden geïmplementeerd op basis van zijn eigen kenmerken.
1String XmlDocument.toString();
Resultaten retourneren:
- String, retourneert de tekenreeksrepresentatie van het object
toJSON
Retourneert een weergave in JSON-indeling van het object, waarbij doorgaans een verzameling leesbare eigenschappen wordt geretourneerd die door het object zijn gedefinieerd.
1Value XmlDocument.toJSON(String key = "");
Oproepparameters:
- key: Tekenreeks, niet gebruikt
Resultaten retourneren:
- Value, retourneert een waarde die JSON-serialiseerbaar bevat