Java : Node (XML) con ejemplos
Node (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Node.
Nota :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
Summary
La interfaz Node es el tipo de datos principal de todo el modelo de objetos de documento. Representa un nodo único en el árbol de documentos. (Traducción automática)
Code examples on this page use the printDocument method below.
public void printDocument(Document document) throws TransformerException {
final var transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
final var result = new StreamResult(new StringWriter());
transformer.transform(new DOMSource(document), result);
System.out.print(result.getWriter());
}
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final var root = document.createElement("root");
System.out.println(root); // [root: null]
document.appendChild(root);
final var child = document.createElement("child");
System.out.println(child); // [child: null]
root.appendChild(child);
final var text = document.createTextNode("abcd");
System.out.println(text); // [#text: abcd]
child.appendChild(text);
//<root>
// <child>abcd</child>
//</root>
printDocument(document);
Fields
static final short ATTRIBUTE_NODE
El nodo es un Attr. (Traducción automática)
final var xml = """
<root attr="abc"/>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node attr = document.getDocumentElement().getAttributes().getNamedItem("attr");
System.out.println(attr); // attr="abc"
System.out.println(Node.ATTRIBUTE_NODE); // 2
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
static final short CDATA_SECTION_NODE
El nodo es una CDATASection. (Traducción automática)
final var xml = """
<root><![CDATA[<&>]]></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node cdata = document.getDocumentElement().getFirstChild();
System.out.println(cdata); // [#cdata-section: <&>]
System.out.println(Node.CDATA_SECTION_NODE); // 4
System.out.println(cdata.getNodeType() == Node.CDATA_SECTION_NODE); // true
static final short COMMENT_NODE
El nodo es un comentario. (Traducción automática)
final var xml = """
<root><!-- abc --></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node comment = document.getDocumentElement().getFirstChild();
System.out.println(comment); // [#comment: abc ]
System.out.println(Node.COMMENT_NODE); // 8
System.out.println(comment.getNodeType() == Node.COMMENT_NODE); // true
static final short DOCUMENT_FRAGMENT_NODE
El nodo es un DocumentFragment. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final Node fragment = document.createDocumentFragment();
System.out.println(fragment); // [#document-fragment: null]
System.out.println(Node.DOCUMENT_FRAGMENT_NODE); // 11
System.out.println(fragment.getNodeType() == Node.DOCUMENT_FRAGMENT_NODE); // true
static final short DOCUMENT_NODE
El nodo es un Documento. (Traducción automática)
final var xml = """
<root/>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final Node document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
System.out.println(document); // [#document: null]
System.out.println(Node.DOCUMENT_NODE); // 9
System.out.println(document.getNodeType() == Node.DOCUMENT_NODE); // true
static final short DOCUMENT_POSITION_CONTAINED_BY
El nodo está contenido por el nodo de referencia. (Traducción automática)
final var xml = """
<root><child/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final var root = document.getDocumentElement();
System.out.println(root); // [root: null]
final var child = root.getFirstChild();
System.out.println(child); // [child: null]
final var type = root.compareDocumentPosition(child);
System.out.printf("%#x%n", type); // 0x14
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
static final short DOCUMENT_POSITION_CONTAINS
El nodo contiene el nodo de referencia. (Traducción automática)
final var xml = """
<root><child/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final var root = document.getDocumentElement();
System.out.println(root); // [root: null]
final var child = root.getFirstChild();
System.out.println(child); // [child: null]
final var type = child.compareDocumentPosition(root);
System.out.printf("%#x%n", type); // 0xa
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINS); // 0x8
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINS); // 0x8
static final short DOCUMENT_POSITION_DISCONNECTED
Los dos nodos están desconectados. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document1 = builder.newDocument();
final var node1 = document1.createTextNode("abcd");
System.out.println(node1); // [#text: abcd]
final var document2 = builder.newDocument();
final var node2 = document2.createTextNode("xyz");
System.out.println(node2); // [#text: xyz]
final var type = node1.compareDocumentPosition(node2);
System.out.printf("%#x%n", type); // 0x23
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_DISCONNECTED); // 0x1
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_DISCONNECTED); // 0x1
static final short DOCUMENT_POSITION_FOLLOWING
El nodo sigue al nodo de referencia. (Traducción automática)
final var xml = """
<root>
<child-a/>
<child-b/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final var childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
final var childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
final var type = childA.compareDocumentPosition(childB);
System.out.printf("%#x%n", type); // 0x4
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
La determinación de lo precedente versus lo siguiente es específica de cada implementación. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document1 = builder.newDocument();
final var node1 = document1.createTextNode("abcd");
System.out.println(node1); // [#text: abcd]
final var document2 = builder.newDocument();
final var node2 = document2.createTextNode("xyz");
System.out.println(node2); // [#text: xyz]
final short type = node1.compareDocumentPosition(node2);
System.out.printf("%#x%n", type); // 0x23
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); // 0x20
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); // 0x20
static final short DOCUMENT_POSITION_PRECEDING
El segundo nodo precede al nodo de referencia. (Traducción automática)
final var xml = """
<root>
<child-a/>
<child-b/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final var childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
final var childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
final var type = childB.compareDocumentPosition(childA);
System.out.printf("%#x%n", type); // 0x2
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_PRECEDING); // 0x2
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_PRECEDING); // 0x2
static final short DOCUMENT_TYPE_NODE
El nodo es un DocumentType. (Traducción automática)
final var xml = """
<!DOCTYPE root>
<root/>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node doctype = document.getDoctype();
System.out.println(doctype); // [root: null]
System.out.println(Node.DOCUMENT_TYPE_NODE); // 10
System.out.println(doctype.getNodeType() == Node.DOCUMENT_TYPE_NODE); // true
static final short ELEMENT_NODE
El nodo es un elemento. (Traducción automática)
final var xml = """
<root/>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node element = document.getDocumentElement();
System.out.println(element); // [root: null]
System.out.println(Node.ELEMENT_NODE); // 1
System.out.println(element.getNodeType() == Node.ELEMENT_NODE); // true
static final short ENTITY_NODE
El nodo es una entidad. (Traducción automática)
final var xml = """
<!DOCTYPE root [
<!ENTITY aaa "bbb">
]>
<root>&aaa;</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node entity = document.getDoctype().getEntities().item(0);
System.out.println(entity); // [aaa: null]
System.out.println(Node.ENTITY_NODE); // 6
System.out.println(entity.getNodeType() == Node.ENTITY_NODE); // true
//<root>bbb</root>
printDocument(document);
static final short ENTITY_REFERENCE_NODE
El nodo es una EntityReference. (Traducción automática)
final var xml = """
<!DOCTYPE root [
<!ENTITY aaa "bbb">
]>
<root>&aaa;</root>
""";
final var factory = DocumentBuilderFactory.newInstance();
factory.setExpandEntityReferences(false);
final var document = factory.newDocumentBuilder().parse(
new ByteArrayInputStream(xml.getBytes()));
final Node entityReference = document.getDocumentElement().getFirstChild();
System.out.println(entityReference); // [aaa: null]
System.out.println(Node.ENTITY_REFERENCE_NODE); // 5
System.out.println(entityReference.getNodeType() == Node.ENTITY_REFERENCE_NODE); // true
static final short NOTATION_NODE
El nodo es una notación. (Traducción automática)
final var xml = """
<!DOCTYPE root [
<!NOTATION sample SYSTEM "aaa">
]>
<root/>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node notation = document.getDoctype().getNotations().item(0);
System.out.println(notation); // [sample: null]
System.out.println(Node.NOTATION_NODE); // 12
System.out.println(notation.getNodeType() == Node.NOTATION_NODE); // true
static final short PROCESSING_INSTRUCTION_NODE
El nodo es una ProcessingInstruction. (Traducción automática)
final var xml = """
<root><?target content?></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node pi = document.getDocumentElement().getFirstChild();
System.out.println(pi); // [target: content]
System.out.println(Node.PROCESSING_INSTRUCTION_NODE); // 7
System.out.println(pi.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE); // true
static final short TEXT_NODE
El nodo es un nodo de texto. (Traducción automática)
final var xml = """
<root>abcd</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node text = document.getDocumentElement().getFirstChild();
System.out.println(text); // [#text: abcd]
System.out.println(Node.TEXT_NODE); // 3
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
Methods
Node appendChild (Node newChild)
Agrega el nodo newChild al final de la lista de hijos de este nodo. (Traducción automática)
final var xml = """
<root/>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node child = document.createElement("child");
System.out.println(child); // [child: null]
final Node ret = root.appendChild(child);
System.out.println(ret); // [child: null]
//<root>
// <child/>
//</root>
printDocument(document);
Node cloneNode (boolean deep)
Devuelve un duplicado de este nodo, es decir, sirve como un constructor de copia genérico para los nodos. (Traducción automática)
final var xml = """
<root><a><b>xyz</b></a></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <a>
// <b>xyz</b>
// </a>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node childA = document.getElementsByTagName("a").item(0);
System.out.println(childA); // [a: null]
final Node clonedDeepNode = childA.cloneNode(true);
final Node clonedNode = childA.cloneNode(false);
root.appendChild(clonedDeepNode);
root.appendChild(clonedNode);
//<root>
// <a>
// <b>xyz</b>
// </a>
// <a>
// <b>xyz</b>
// </a>
// <a/>
//</root>
printDocument(document);
short compareDocumentPosition (Node other)
Compara el nodo de referencia, es decir, el nodo en el que se llama este método, con un nodo, es decir, el que se pasa como parámetro, con respecto a su posición en el documento y según el orden del documento. (Traducción automática)
final var xml = """
<root>
<child/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
final short type = root.compareDocumentPosition(child);
System.out.printf("%#x%n", type); // 0x14
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
NamedNodeMap getAttributes ()
Un NamedNodeMap que contiene los atributos de este nodo (si es un elemento) o nulo en caso contrario. (Traducción automática)
final var xml = """
<root>
<child aa="AA" bb="BB" />
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
final var attributes = child.getAttributes();
System.out.println("-- attributes --");
for (int i = 0; i < attributes.getLength(); i++) {
final var attr = attributes.item(i);
System.out.println(attr);
}
// Result
// ↓
//-- attributes --
//aa="AA"
//bb="BB"
String getBaseURI ()
La URI base absoluta de este nodo o nula si la implementación no pudo obtener una URI absoluta. (Traducción automática)
final var path = Path.of("R:", "java-work", "a.xml");
System.out.println(path); // R:\java-work\a.xml
Files.writeString(path, """
<root>
<child/>
</root>
""");
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(path.toFile());
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.getBaseURI()); // file:/R:/java-work/a.xml
NodeList getChildNodes ()
Una lista de nodos que contiene todos los hijos de este nodo. (Traducción automática)
final var xml = """
<root><child-a/><child-b/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final var nodes = root.getChildNodes();
System.out.println(nodes.getLength()); // 2
System.out.println("-- nodes --");
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i));
}
// Result
// ↓
//-- nodes --
//[child-a: null]
//[child-b: null]
final var xml = """
<root>
<child-a/>
<child-b/>
<!-- comment! -->
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final var nodes = root.getChildNodes();
System.out.println(nodes.getLength()); // 7
System.out.println("-- nodes --");
for (int i = 0; i < nodes.getLength(); i++) {
final var node = nodes.item(i);
if (node instanceof Text text) {
// For readability, line separators are converted to "\n" and spaces to "*".
final var data = text.getData().replace("\n", "\\n").replace(" ", "*");
System.out.println("[#text: " + data + "]");
} else {
System.out.println(node);
}
}
// Result
// ↓
//-- nodes --
//[#text: \n****]
//[child-a: null]
//[#text: \n****]
//[child-b: null]
//[#text: \n****]
//[#comment: comment! ]
//[#text: \n]
Object getFeature (String feature, String version)
Este método devuelve un objeto especializado que implementa las API especializadas de la función y versión especificadas, como se especifica en . (Traducción automática)
final var xml = """
<root>abcd</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.isSupported("XML", "3.0")); // true
System.out.println(root.getFeature("XML", "3.0")); // [root: null]
System.out.println(root.isSupported("XML", "4.0")); // false
System.out.println(root.getFeature("XML", "4.0")); // null
Node getFirstChild ()
El primer hijo de este nodo. (Traducción automática)
final var xml = """
<root><child-a/><child-b/><child-c/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-a/>
// <child-b/>
// <child-c/>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node firstChild = root.getFirstChild();
System.out.println(firstChild); // [child-a: null]
final Node lastChild = root.getLastChild();
System.out.println(lastChild); // [child-c: null]
Node getLastChild ()
El último hijo de este nodo. (Traducción automática)
final var xml = """
<root><child-a/><child-b/><child-c/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-a/>
// <child-b/>
// <child-c/>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node firstChild = root.getFirstChild();
System.out.println(firstChild); // [child-a: null]
final Node lastChild = root.getLastChild();
System.out.println(lastChild); // [child-c: null]
String getLocalName ()
Devuelve la parte local del nombre calificado de este nodo. (Traducción automática)
final var xml = """
<ns:root xmlns:ns="sample">
<ns:child/>
</ns:root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]
System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample
String getNamespaceURI ()
El URI del espacio de nombres de este nodo, o nulo si no se especifica (ver ). (Traducción automática)
final var xml = """
<ns:root xmlns:ns="sample">
<ns:child/>
</ns:root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]
System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample
Node getNextSibling ()
El nodo que sigue inmediatamente a este nodo. (Traducción automática)
final var xml = """
<root><child-a/><child-b/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-a/>
// <child-b/>
//</root>
printDocument(document);
final Node childA = document.getDocumentElement().getFirstChild();
System.out.println(childA); // [child-a: null]
final Node childB = childA.getNextSibling();
System.out.println(childB); // [child-b: null]
final Node childC = childB.getNextSibling();
System.out.println(childC); // null
String getNodeName ()
El nombre de este nodo, dependiendo de su tipo; consulte la tabla anterior. (Traducción automática)
final var xml = """
<root>
<child aa="AA">abcd</child>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null
// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA
// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd
short getNodeType ()
Un código que representa el tipo de objeto subyacente, como se define anteriormente. (Traducción automática)
final var xml = """
<root>
<child aa="AA">abcd</child>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null
// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA
// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd
String getNodeValue ()
El valor de este nodo, dependiendo de su tipo; vea la tabla anterior. (Traducción automática)
final var xml = """
<root>
<child aa="AA">abcd</child>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null
// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA
// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd
Document getOwnerDocument ()
El objeto de documento asociado con este nodo. (Traducción automática)
final var xml = """
<root>
<child/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
final var ownerDocument = child.getOwnerDocument();
System.out.println(document.isSameNode(ownerDocument)); // true
Node getParentNode ()
El padre de este nodo. (Traducción automática)
final var xml = """
<root>
<child>
<child-child/>
</child>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childChild = document.getElementsByTagName("child-child").item(0);
System.out.println(childChild); // [child-child: null]
final Node child = childChild.getParentNode();
System.out.println(child); // [child: null]
final Node root = child.getParentNode();
System.out.println(root); // [root: null]
String getPrefix ()
El prefijo del espacio de nombres de este nodo, o nulo si no está especificado. (Traducción automática)
final var xml = """
<ns:root xmlns:ns="sample">
<ns:child/>
</ns:root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]
System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample
Node getPreviousSibling ()
El nodo inmediatamente anterior a este nodo. (Traducción automática)
final var xml = """
<root><child-y/><child-z/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-y/>
// <child-z/>
//</root>
printDocument(document);
final Node childZ = document.getDocumentElement().getLastChild();
System.out.println(childZ); // [child-z: null]
final Node childY = childZ.getPreviousSibling();
System.out.println(childY); // [child-y: null]
final Node childX = childY.getPreviousSibling();
System.out.println(childX); // null
String getTextContent ()
Este atributo devuelve el contenido de texto de este nodo y sus descendientes. (Traducción automática)
final var xml = """
<root>aaa<child>XYZ</child>bbb</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.getTextContent()); // aaaXYZbbb
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
System.out.println(child.getTextContent()); // XYZ
Object getUserData (String key)
Recupera el objeto asociado a una clave en un nodo este. (Traducción automática)
final var xml = """
<root>
<child-a/>
<child-b/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
final var handler = new UserDataHandler() {
@Override
public void handle(short operation, String key, Object data, Node src, Node dst) {
System.out.println("-- UserDataHandler.handle --");
System.out.println(
"operation = " + operation + " : key = " + key +
" : data = " + data + " : src = " + src + " : dst = " + dst);
}
};
final var retA = childA.setUserData("a-key", "aaa", handler);
System.out.println(retA); // null
final var retB = childB.setUserData("b-key", "bbb", handler);
System.out.println(retB); // null
System.out.println(childA.getUserData("a-key")); // aaa
System.out.println(childA.getUserData("b-key")); // null
System.out.println(childB.getUserData("a-key")); // null
System.out.println(childB.getUserData("b-key")); // bbb
final var clonedNode = childA.cloneNode(false);
// Result
// ↓
//-- UserDataHandler.handle --
//operation = 1 : key = a-key : data = aaa : src = [child-a: null] : dst = [child-a: null]
final var renamedNode = document.renameNode(childB, null, "child-z");
// Result
// ↓
//-- UserDataHandler.handle --
//operation = 4 : key = b-key : data = bbb : src = [child-z: null] : dst = null
boolean hasAttributes ()
Devuelve si este nodo (si es un elemento) tiene atributos. (Traducción automática)
final var xml = """
<root>
<child-a/>
<child-b aa="AA" />
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
System.out.println(childA.hasAttributes()); // false
final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
System.out.println(childB.hasAttributes()); // true
boolean hasChildNodes ()
Devuelve si este nodo tiene hijos. (Traducción automática)
final var xml = """
<root><child/></root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.hasChildNodes()); // true
System.out.println(root.getChildNodes().getLength()); // 1
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
System.out.println(child.hasChildNodes()); // false
System.out.println(child.getChildNodes().getLength()); // 0
Node insertBefore (Node newChild, Node refChild)
Inserta el nodo newChild antes del nodo hijo existente refChild. (Traducción automática)
final var xml = """
<root><child-z/></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-z/>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node childZ = document.getElementsByTagName("child-z").item(0);
System.out.println(childZ); // [child-z: null]
final Node childX = document.createElement("child-x");
final Node ret1 = root.insertBefore(childX, childZ);
System.out.println(ret1); // [child-x: null]
final Node childY = document.createElement("child-y");
final Node ret2 = root.insertBefore(childY, childZ);
System.out.println(ret2); // [child-y: null]
//<root>
// <child-x/>
// <child-y/>
// <child-z/>
//</root>
printDocument(document);
boolean isDefaultNamespace (String namespaceURI)
Este método verifica si el namespaceURI especificado es el espacio de nombres predeterminado o no. (Traducción automática)
final var xml = """
<root xmlns="sample1" xmlns:ns="sample2">
<child-a/>
<ns:child-b/>
</root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
System.out.println(childA.getNamespaceURI()); // sample1
System.out.println(childA.isDefaultNamespace("sample1")); // true
System.out.println(childA.isDefaultNamespace("sample2")); // false
final Node childB = document.getElementsByTagName("ns:child-b").item(0);
System.out.println(childB); // [ns:child-b: null]
System.out.println(childB.getNamespaceURI()); // sample2
System.out.println(childB.isDefaultNamespace("sample1")); // true
System.out.println(childB.isDefaultNamespace("sample2")); // false
boolean isEqualNode (Node arg)
Comprueba si dos nodos son iguales. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final Node nodeA1 = document.createElement("node-a");
final Node nodeA2 = document.createElement("node-a");
final Node nodeB = document.createElement("node-b");
System.out.println(nodeA1.isEqualNode(nodeA1)); // true
System.out.println(nodeA1.isEqualNode(nodeA2)); // true
System.out.println(nodeA1.isEqualNode(nodeB)); // false
System.out.println(nodeA1.isSameNode(nodeA1)); // true
System.out.println(nodeA1.isSameNode(nodeA2)); // false
System.out.println(nodeA1.isSameNode(nodeB)); // false
boolean isSameNode (Node other)
Devuelve si este nodo es el mismo que el dado. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final Node nodeA1 = document.createElement("node-a");
final Node nodeA2 = document.createElement("node-a");
final Node nodeB = document.createElement("node-b");
System.out.println(nodeA1.isEqualNode(nodeA1)); // true
System.out.println(nodeA1.isEqualNode(nodeA2)); // true
System.out.println(nodeA1.isEqualNode(nodeB)); // false
System.out.println(nodeA1.isSameNode(nodeA1)); // true
System.out.println(nodeA1.isSameNode(nodeA2)); // false
System.out.println(nodeA1.isSameNode(nodeB)); // false
boolean isSupported (String feature, String version)
Comprueba si la implementación del DOM implementa una característica específica y si esa característica es compatible con este nodo, como se especifica en . (Traducción automática)
final var xml = """
<root>abcd</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.isSupported("XML", "3.0")); // true
System.out.println(root.getFeature("XML", "3.0")); // [root: null]
System.out.println(root.isSupported("XML", "4.0")); // false
System.out.println(root.getFeature("XML", "4.0")); // null
String lookupNamespaceURI (String prefix)
Busque la URI del espacio de nombres asociada al prefijo dado, comenzando desde este nodo. (Traducción automática)
final var xml = """
<root xmlns:ns1="sample1">
<ns1:child-a>
<ns2:child-b xmlns:ns2="sample2"/>
</ns1:child-a>
</root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("ns1:child-a").item(0);
System.out.println(childA); // [ns1:child-a: null]
System.out.println(childA.lookupNamespaceURI("ns1")); // sample1
System.out.println(childA.lookupNamespaceURI("ns2")); // null
final Node childB = document.getElementsByTagName("ns2:child-b").item(0);
System.out.println(childB); // [ns2:child-b: null]
System.out.println(childB.lookupNamespaceURI("ns1")); // sample1
System.out.println(childB.lookupNamespaceURI("ns2")); // sample2
String lookupPrefix (String namespaceURI)
Busque el prefijo asociado al URI del espacio de nombres dado, comenzando desde este nodo. (Traducción automática)
final var xml = """
<root xmlns:ns1="sample1">
<ns1:child-a>
<ns2:child-b xmlns:ns2="sample2"/>
</ns1:child-a>
</root>
""";
final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("ns1:child-a").item(0);
System.out.println(childA); // [ns1:child-a: null]
System.out.println(childA.lookupPrefix("sample1")); // ns1
System.out.println(childA.lookupPrefix("sample2")); // null
final Node childB = document.getElementsByTagName("ns2:child-b").item(0);
System.out.println(childB); // [ns2:child-b: null]
System.out.println(childB.lookupPrefix("sample1")); // ns1
System.out.println(childB.lookupPrefix("sample2")); // ns2
void normalize ()
Coloca todos los nodos de texto en la profundidad completa del subárbol debajo de este nodo, incluidos los nodos de atributo, en una forma "normal" donde solo la estructura (por ejemplo, elementos, comentarios, instrucciones de procesamiento, secciones CDATA y referencias de entidad) separa los nodos de texto, es decir, no hay nodos de texto adyacentes ni nodos de texto vacíos. (Traducción automática)
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final Node root = document.createElement("root");
// Intentionally creates Text nodes by splitting it.
root.appendChild(document.createTextNode("aaa"));
root.appendChild(document.createTextNode("bbb"));
root.appendChild(document.createElement("child"));
root.appendChild(document.createTextNode(""));
{
final var nodes = root.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i));
}
// Result
// ↓
//[#text: aaa]
//[#text: bbb]
//[child: null]
//[#text: ]
}
// Adjacent text nodes are combined. Empty Text nodes are deleted.
root.normalize();
{
final var nodes = root.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i));
}
// Result
// ↓
//[#text: aaabbb]
//[child: null]
}
Node removeChild (Node oldChild)
Elimina el nodo secundario indicado por oldChild de la lista de secundarios y lo devuelve. (Traducción automática)
final var xml = """
<root><child>abcd</child></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child>abcd</child>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
final Node ret = root.removeChild(child);
System.out.println(ret); // [child: null]
//<root/>
printDocument(document);
Node replaceChild (Node newChild, Node oldChild)
Reemplaza el nodo secundario oldChild con newChild en la lista de secundarios y devuelve el nodo oldChild. (Traducción automática)
final var xml = """
<root><child-a>abcd</child-a></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child-a>abcd</child-a>
//</root>
printDocument(document);
final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
final Node childB = document.createElement("child-b");
childB.appendChild(document.createTextNode("XYZ"));
final Node ret = root.replaceChild(childB, childA);
System.out.println(ret); // [child-a: null]
//<root>
// <child-b>XYZ</child-b>
//</root>
printDocument(document);
void setNodeValue (String nodeValue)
El valor de este nodo, dependiendo de su tipo; vea la tabla anterior. (Traducción automática)
final var xml = """
<root><child aa="AA"/></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child aa="AA"/>
//</root>
printDocument(document);
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
final Node attr = child.getAttributes().item(0);
attr.setNodeValue("XYZ");
//<root>
// <child aa="XYZ"/>
//</root>
printDocument(document);
void setPrefix (String prefix)
El prefijo del espacio de nombres de este nodo, o nulo si no está especificado. (Traducción automática)
final var xml = """
<ns:root xmlns:ns="sample"><ns:child/></ns:root>
""";
final var document = DocumentBuilderFactory.newNSInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<ns:root xmlns:ns="sample">
// <ns:child/>
//</ns:root>
printDocument(document);
final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]
child.setPrefix("xx");
//<ns:root xmlns:ns="sample">
// <xx:child xmlns:xx="sample"/>
//</ns:root>
printDocument(document);
void setTextContent (String textContent)
Este atributo devuelve el contenido de texto de este nodo y sus descendientes. (Traducción automática)
final var xml = """
<root><child/></root>
""";
final var document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
//<root>
// <child/>
//</root>
printDocument(document);
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
child.setTextContent("abcd");
//<root>
// <child>abcd</child>
//</root>
printDocument(document);
Object setUserData (String key, Object data, UserDataHandler handler)
Asociar un objeto a una clave en este nodo. (Traducción automática)
final var xml = """
<root>
<child-a/>
<child-b/>
</root>
""";
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
final var handler = new UserDataHandler() {
@Override
public void handle(short operation, String key, Object data, Node src, Node dst) {
System.out.println("-- UserDataHandler.handle --");
System.out.println(
"operation = " + operation + " : key = " + key +
" : data = " + data + " : src = " + src + " : dst = " + dst);
}
};
final var retA = childA.setUserData("a-key", "aaa", handler);
System.out.println(retA); // null
final var retB = childB.setUserData("b-key", "bbb", handler);
System.out.println(retB); // null
System.out.println(childA.getUserData("a-key")); // aaa
System.out.println(childA.getUserData("b-key")); // null
System.out.println(childB.getUserData("a-key")); // null
System.out.println(childB.getUserData("b-key")); // bbb
final var clonedNode = childA.cloneNode(false);
// Result
// ↓
//-- UserDataHandler.handle --
//operation = 1 : key = a-key : data = aaa : src = [child-a: null] : dst = [child-a: null]
final var renamedNode = document.renameNode(childB, null, "child-z");
// Result
// ↓
//-- UserDataHandler.handle --
//operation = 4 : key = b-key : data = bbb : src = [child-z: null] : dst = null