getTextContent   实际获取的是所有子节点的值;

getNodeValue是获取当前节点的值;

element在setTextContent的时候其实是给节点 #text 设置值;所以element 获取value时调用getFirstChild的value实际

调用的是第一个 #text ,而element 直接调用getNodeValue为空值

getTextContent   实际获取的是所有子节点的值;getNodeValue是获取当前节点的值;element在setTextContent的时候其实是给节点  #text  设置值;所以element 获取value时调用getFirstChild的value实际调用的是第一个#text  ,而element 直接调用getNodeValue为空值   ...
在学习DOM解析XML的内容时,最先学习了读取XML中的内容,但是利用get Node Value ()方法时,常常获得null;要不然就是报NullPointerException空指针错误。于是我就查阅了相关的内容,将这个知识点总结一下。首先贴出我的XML中的内容: <?xml version="1.0" encoding="UTF-8"?> <Languages cat="it"...
1 //创建一个DocumentBuilderFactory工厂实例 2 DocumentBuilderFactory DBF=DocumentBuilderFactory.newInstance(); 3 //通过工厂实例对象创建一个DocumentBuilder实例 4 DocumentBuilder DB=DBF.newDoc...
XML解析——Java中XML的四种解析方式 XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。   XML的解析方式分为四种: 一.DOM解析 1、JAXP解析 二.SAX解析 2、StAX解析;3、JDOM解析;4、DOM4J解析 其中前两种属于基础方法,...
import org.w3c.dom.Document;import org.w3c.dom. Element ;import org.w3c.dom. Node List; 方法中应用: Node List node list1 = root.get Element sByTagName(" Content "); String Content = node list1.item(0).getTex
没有为类型 Node 定义方法 getText Content (zz) 晚上下班的时候,把班上写了半截的代码带了回来。结果回到家后出乎意料的是回来的时候将代码导入eclipse后,下面这行代码就直接报错了,显示 getText Content ()未定义 。          (( Element ) ele.get Element sByTagName( "err_code").item(0 )).ge
import java.io.FileInputStream; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom. Element ; import org.w3c.dom. Node ; import org.w3c.dom. Node List;public class XmlCompare { public static void main(String[] args) throws Exception { // 读取文件 File file1 = new File("xml1.xml"); File file2 = new File("xml2.xml"); // 解析文件 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc1 = db.parse(file1); Document doc2 = db.parse(file2); // 建立对比文件 Document doc3 = db.newDocument(); Element root Element = doc3.create Element ("root"); doc3.appendChild(root Element ); // 开始对比 compareXml(doc1.getDocument Element (), doc2.getDocument Element (), root Element ); // 写入文件 TransformerFactory tff = TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(); DOMSource source = new DOMSource(doc3); FileOutputStream out = new FileOutputStream("difference.xml"); StreamResult result = new StreamResult(out); tf.transform(source, result); out.close(); } public static void compareXml( Element element 1, Element element 2, Element root Element ) { // 对比 element 1和 element 2的所有属性 if(!compare Element ( element 1, element 2, root Element )) { // 如果不相等,则把 element 1的内容记录下来 Element element = root Element .getOwnerDocument().create Element (" value "); element .setAttribute("type", "modify"); element .setAttribute("name", element 1.get Node Name()); element .setAttribute(" value ", element 1. getText Content ()); root Element .appendChild( element ); } // 对比 element 1和 element 2的子节点 Node List node List1 = element 1.getChild Node s(); Node List node List2 = element 2.getChild Node s(); for (int i = 0; i < node List1.getLength(); i++) { Node node 1 = node List1.item(i); if ( node 1.get Node Type() == Node . ELEMENT _ NODE ) { Element e1 = ( Element ) node 1; Node node 2 = find Node ( node List2, e1.get Node Name()); if ( node 2 != null) { Element e2 = ( Element ) node 2; compareXml(e1, e2, root Element ); } else { // 如果 element 2中没有找到,则记录下来 Element element = root Element .getOwnerDocument().create Element (" value "); element .setAttribute("type", "add"); element .setAttribute("name", e1.get Node Name()); element .setAttribute(" value ", e1. getText Content ()); root Element .appendChild( element ); } // 对比 element 2中多余的节点 for (int i = 0; i < node List2.getLength(); i++) { Node node 2 = node List2.item(i); if ( node 2.get Node Type() == Node . ELEMENT _ NODE ) { Element e2 = ( Element ) node 2; Node node 1 = find Node ( node List1, e2.get Node Name()); if ( node 1 == null) { Element element = root Element .getOwnerDocument().create Element (" value "); element .setAttribute("type", "del"); element .setAttribute("name", e2.get Node Name()); element .setAttribute(" value ", e2. getText Content ()); root Element .appendChild( element ); } public static boolean compare Element ( Element element 1, Element element 2, Element root Element ) { if (! element 1.get Node Name().equals( element 2.get Node Name()) || ! element 1. getText Content ().equals( element 2. getText Content ())) { return false; return true; } public static Node find Node ( Node List node List, String node Name) { for (int i = 0; i < node List.getLength(); i++) { Node node = node List.item(i); if ( node .get Node Name().equals( node Name)) { return node ; return null;