java - 如何使用 DOM Parser 在包含与节点名称相同的标记名的节点内复制元素
问题描述
我有一个输入 xml 文件,我需要复制里面的元素和标签,但问题是节点<Name>
内部还有另一个标签。<Name>
在这种情况下如何复制?
输入.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
<College name="test1">
<Name>
<dummyData1>dummy1</dummyData1>
<dummyData2>dummy2</dummyData2>
</Name>
</College>
<SomeData>SomeValue</SomeData>
</Name>
<SomeOtherTags>Not needed</SomeOtherTags>
<Address>
<Country name="test2">
<City name = "city1">
<zip>
<dummy3>dummy3</dummy3>
</zip>
</City>
</Country>
</Address>
</data>
基础.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
</Name>
<Address>
</Address>
</data>
这就是我所期待的
输出.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
<College name="test1">
<Name>
<dummyData1>dummy1</dummyData1>
<dummyData2>dummy2</dummyData2>
</Name>
</College>
<SomeData>SomeValue</SomeData>
</Name>
<Address>
<Country name="test2">
<City name = "city1">
<zip>
<dummy3>dummy3</dummy3>
</zip>
</City>
</Country>
</Address>
</data>
添加缺少的代码,谢谢 Andreas
Document outputDoc = db.parse(baseXml);
Document inputDoc = db.parse(inputXml);
Node outputNameNode = outputDoc.getElementsByTagName("Name").item(0);
Node outputAddressNode = outputDoc.getElementsByTagName("Address").item(0);
NodeList nameNodeList = inputDoc.getElementsByTagName("Name");
System.out.println(nameNodeList.getLength());
for (int i = 0; i < nameNodeList.getLength(); i++) {
System.out.println(nameNodeList.item(i));
Node outputNode = outputDoc.importNode(nameNodeList.item(i), true);
outputNameNode.appendChild(outputNode);
}
解决方案
推荐阅读
- sql-server - VB6 DAO 连接到 SQL Server 2008 数据库
- java - 带线程的Java程序不会退出
- swift - 无法快速在分页输出中获得更多页面
- java - Android 资源链接失败(守护进程:AAPT2 aapt2-3.2.1-4818971-windows Daemon #0)
- javascript - 如何将链接添加到 Ajax 的搜索结果?
- java - 值跳转的Java for循环
- sql - 如何获得客户购买的物品?
- java - Objectify 负载组不过滤 Ref<> 数据
- javascript - 设置打印 PDF 而不是网页?
- python - Keras 中的连接层使拟合失败