Tag: xmlnode

以递归方式从XML中删除空节点

我想从XML元素中删除空节点。 这个xml是从供应商生成的,我没有xml生成的控制权。 但由于XML几乎没有空节点,我需要递归删除这些空节点。 这个xml来自OMElement,我使用[XMLUtils] [1] Sample XML从这个对象中获取一个Element something something something else 由于D21是一个空节点,我想删除D21,因为现在D2是一个空节点,我想删除D2,但由于D有D1,我不想删除D. 同样,我有可能得到 现在,因为C是空的,我想删除C然后B,然后最终删除节点A.我试图在Node中使用removeChild()方法执行此操作 但到目前为止,我无法递归删除它们。 有什么建议可以递归删除它们吗? 我递归地尝试获取节点和节点长度。 但节点长度没有帮助 if(childNode.getChildNodes().getLength() == 0 ){ childNode.getParentNode().removeChild(childNode); } 问候 Dheeraj Joshi

将org.w3c.dom.Node转换为Document

我有一个Document的Node 。 我想将该Node转换为新Document的根节点。 我能想到的唯一方法如下: Node node = someChildNodeFromDifferentDocument; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document newDocument = builder.newDocument(); newDocument.importNode(node); newDocument.appendChild(node); 这很有效,但我觉得这很烦人。 我没有看到更简洁/更直接的方式,还是我必须这样做?

如何使用java获取xml节点的属性值

我有一个看起来像这样的xml: { …..} 在这里,我想检索“源类型”的值,其中类型s属性。 我试过这样,但它不起作用: DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = domFactory.newDocumentBuilder(); Document dDoc = builder.parse(“D:/workspace1/ereader/src/main/webapp/configurations/config.xml”); System.out.println(dDoc); XPath xPath = XPathFactory.newInstance().newXPath(); Node node = (Node) xPath.evaluate(“//xml/source/@type/text()”, dDoc, XPathConstants.NODE); System.out.println(node); } catch (Exception e) { e.printStackTrace(); 我也试过这个: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource is = new InputSource(new StringReader(“config.xml”)); Document doc […]