今天对xml报文的头做缓存,第一次直接保存上一次生成好的doc中的Element元素到内存中,发现下次从内存中取出来的Element元素是null。
(代码不能直接使用,只做说明原理用)
缓存的代码
hmmeta.put(dataset.getDataSetName(),
new Meta((Element)ele, dataFields, newSql.toString()));
使用的代码
this.fields=hmmeta.get(dsname).getFields();
发现得到的fields是null。
尝试下面的方法
缓存的代码
hmmeta.put(dataset.getDataSetName(),
new Meta((NodeList)ele.getElementsByTagName("FIELD"), dataFields, newSql.toString()));
引用的代码
NodeList fields = (NodeList)hmmeta.get(dsname).getNodeList();
for(int i=0;i<fields.getLength();i++){
this.fields.appendChild(fields.item(i));
}
结果报异常
WRONG_DOCUMENT_ERR: That node doesn't belong in t
his document.
意思是不能使用另一个doc的元素。
上网搜索得到下面的解决方法:
缓存代码
hmmeta.put(dataset.getDataSetName(),
new Meta((NodeList)ele.getElementsByTagName("FIELD"), dataFields, newSql.toString()));
使用缓存中数据
NodeList fields = (NodeList)hmmeta.get(dsname).getNodeList();
for(int i=0;i<fields.getLength();i++){
this.fields.appendChild(outdoc.importNode(fields.item(i),true));
}
不知道各位有没有更好的方法。
分享到:
相关推荐
Java提供了`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`来创建一个解析器,然后使用`org.w3c.dom.Document`接口来解析XML文档。以下是一个基本的XML解析示例: ```java ...
在Java中,我们通常使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`这两个类来解析XML文件。 以下是一个简单的Java代码示例,演示如何读取XML配置文件: ```java import javax.xml....
以下是一个使用DOM解析XML的基本示例: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; ...
相比于W3C的DOM API,DOM4J更易于理解和使用,且在处理大型XML文档时性能更好。DOM4J支持SAX和DOM解析器,同时提供了一个XPath接口来查询XML结构。 2. **基本操作** - **解析XML**:使用`DocumentBuilder`或`...
一个XML文档通常有一个顶级的根元素,根元素下可以包含多个子元素。例如: ```xml 数据1 数据2 数据3 ``` 在这个例子中,`root`是根节点,`child1`、`child2`和`child3`是其子节点。如果我们想删除`child2`这...
- **内置缓存机制**:`Ext.get` 方法内部使用缓存机制来提高性能,如果多次获取同一个元素,则不会重复执行查找操作。 - **跨浏览器兼容性**:Element API 统一了不同浏览器之间的差异,使得开发者无需担心浏览器...
- DOM解析:使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类读取XML,`TransformerFactory`和`Transformer`进行写入。 - SAX解析:通过`org.xml.sax.XMLReader`和`ContentHandler`接口...
JDOM的核心理念在于将XML文档转换为一棵由Java对象组成的树形结构,每个节点代表XML文档的一个元素,如元素(Element)、属性(Attribute)或文本(Text)等。 JDOM的主要特点: 1. **纯Java实现**:JDOM完全由...
使用CSS选择器可以精准定位元素,例如:`doc.select(".class-name")`选择所有class为"class-name"的元素。还可以使用`:not()`、`:has()`、`:contains()`等伪类进行复杂过滤。 6. **属性操作** 要获取或修改元素...
网页考证样题是一个重要的资源,尤其对于准备进行网页相关证书考试的考生来说,它提供了丰富的学习和练习材料。文档“网页考证样题.doc”很可能包含了各种类型的题目,旨在帮助考生熟悉考试格式,提升对网页设计、...