在java中创建XML树并将其转换为json对象
我试图创建一个能够转换为json的树。但只有一个xpath。当我尝试实现多个xpath时,我无法获得所需的输出。我在这里分享我的实现在java中创建XML树并将其转换为json对象,java,xml,json,Java,Xml,Json,我试图创建一个能够转换为json的树。但只有一个xpath。当我尝试实现多个xpath时,我无法获得所需的输出。我在这里分享我的实现 private static Document addElemtbypath(List<String> pathList1, List<String> elementList) { Document doc = null; try { DocumentBuil
private static Document addElemtbypath(List<String> pathList1,
List<String> elementList) {
Document doc = null;
try {
DocumentBuilderFactory docfactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docfactory.newDocumentBuilder();
doc = docBuilder.newDocument();
Element rootElement = doc.createElement("Tree");
doc.appendChild(rootElement);
for (int i = 0; i < pathList1.size(); i++) {
String pathList = pathList1.get(i);
String element = elementList.get(i);
List<String> xpath = new LinkedList<>();
String[] parts = pathList.split("/");
for (int j = 0; j < parts.length; j++) {
xpath.add(parts[j]);
}
System.out.println(xpath);
Node node = doc.getDocumentElement();
Document dom = node.getOwnerDocument();
System.out.println(node);
for (int k = 0; k < xpath.size(); k++) {
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) xPath.evaluate(xpath.get(k),
doc.getDocumentElement(), XPathConstants.NODESET);
if (nodes.getLength() != 0) {
//node = (Node) nodes; // getting class cast exception
continue;
} else {
node = node
.appendChild(dom.createElement(xpath.get(k)));
}
}
node.appendChild(dom.createTextNode(element));
// System.out.println(nodes);
System.out.println(dom);
System.out.println(node);
}
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
我得到的结果是
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Tree>
<Product>
<Organization>
<RegisteredDetail>
<something>product1</something>
</RegisteredDetail>
</Organization>
</Product>
<Organization>
<RegisteredDetail>product2</RegisteredDetail>
</Organization>
</Tree>
正如您所看到的,节点重复出现,我不知道我错在哪里。我想要的输出应该是
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Tree>
<Product>
<Organization>
<RegisteredDetail>
product2
<something>product1</something>
</RegisteredDetail>
</Organization>
</Product>
</Tree>
在某种程度上,我在第二次迭代时犯了一些错误。你是在问Java还是JavaScript?你知道这两个类似于火腿和仓鼠吗?我是在问java。上面的代码是用javascript编写的,我已经写过了,我只想知道java中类似类型的方法,这样我就可以在创建dom时避免重复节点。检查我前面的问题及其答案。@endriu_l