我是xml处理的新手。我正在尝试有趣: getElementById 。为此,我需要在我的文档中声明Id字段。因此,为此,我正在使用以下代码。 1)将字符串转换为xml。
javax.xml.parsers.DocumentBuilderFactory dbf =javax.xml.parsers.DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new StringReader(xml)));
2)使用 setIdAttributeNode
String id = "122";
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><request><myxml></myxml></request>";
String cleanXml = xmlString.replaceAll("\\r", "").replaceAll("\\n", "");
Document doc = convertXmlStringToDoc(cleanXml, schemaPath);
NodeList nodeList = doc.getElementsByTagName("myxml");
if (nodeList.getLength() > 0) {
Attr att = doc.createAttribute("id");
att.setValue(id);
((Element) nodeList.item(0)).setIdAttributeNode(att, true);
}
Element e = doc.getElementById("122");
System.out.println(e);
我遇到的错误是: 线程org.w3c.dom.DOM中的异常:NOT_FOUND_ERR:试图在不存在的上下文中引用该节点。