java - 使用java提取XML的所有重复元素
问题描述
我的 XML 如下所示,我需要在输出 xml 中提取多个 ID 元素:-
<?xml version="1.0" encoding="utf-8"?>
<Stock>
<PIdentification>
<CatalogVersion></CatalogVersion>
<AccountID></AccountID>
<CustomerId></CustomerId>
</ProviderIdentification>
<Product>
<ArticleName>Monitors</ArticleName>
<BaseUnit></BaseUnit>
<Notes></Notes>
<ID>11f13e2e-ae97-45b5-a9a9-23fa7f6bb767</ID>
<ID>b22834c0-a570-4e6b-97c3-5067a14d118d</ID>
<ID>ed458593-5e1a-4dc1-94f0-a66eeef2dd79</ID>
<ID>d25584a9-1db2-48cf-9a70-9b81e5a7e7f2</ID>
</Product>
</Stock>
我已经使用“Nodelist”来提取“ID”,但我只得到一个元素而不是全部 4,下面是代码的一部分:-
{
Node IDNode = element.getElementsByTagName("ID").item(0);
IDXml = toStringXml(IDNode , true);
}
我无法重复查找以获取所有 ID,请让我知道如何获取所有 ID,感谢您的帮助。
private static String toStringXml(Node elt, boolean xmlDeclaration)
throws TransformerException {
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
if(xmlDeclaration)
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
DOMSource source = new DOMSource(elt);
StreamResult result = new StreamResult(new StringWriter());
transformer.transform(source, result);
return result.getWriter().toString();
}
解决方案
你得到了所有的 id,但你只看第一个项目.item(id)
。
方法getElementsByTageName("ID")
返回您NodeList
,因此您可以通过所有 id 获得例如:
File xmlFile = new File("src/main/resources/example.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document element = dBuilder.parse(xmlFile);
NodeList list = element.getElementsByTagName("ID");
for (int i = 0; i < list.getLength(); i++){
Node specificIDNode = list.item(i);
System.out.println(specificIDNode.getTextContent());
}
推荐阅读
- r - 使用 ggplot 曲线 geom_line()
- php - 如何在PHP中双重分割字符串?
- javascript - Javascript 参数处理
- python - 在 CSV 数据框中查找列时 Streamlit Panda 查询函数语法错误
- c++ - 如何从 typedef 组合中推断嵌套类模板类型?
- arcgis - 将 LineOfSight 自定义小部件添加到 appbuilder 2.16 for esri ArcGIS(开发者版)
- angular - 如何以角度获取firebase集合中所有文档的计数?
- android - Android应用商店状态如何
- javascript - 即使在启用 express CORS 中间件后,axios 请求上的 Access-Control-Allow-Origin 错误
- python - TensorFlow Keras Metrics 未显示