java - 如何使用 Java 在 XML 文件中搜索关键字?
问题描述
我想使用 Java 在 XML 文件中搜索单词“Smith”并在控制台中打印“Smith, Mike”
<?xml version = "1.0"?>
<class>
<student rollno = "1">
<firstname>Doe</firstname>
<lastname>Jane</lastname>
</student>
<student rollno = "2">
<firstname>Smith</firstname>
<lastname>Mike</lastname>
</student>
<student rollno = "3">
<firstname>Fonda</firstname>
<lastname>Jane</lastname>
</student>
</class>
我在网上找到了查询整个 XML 文件的资源,但很难找到在标签内搜索的方法。
解决方案
尝试以下解决方案。在这个例子中使用 DOM Parser 来解析 XML 文件。
String firstName = "";
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the first name: ");
firstName = scanner.nextLine();
try {
File inputFile = new File("input.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inputFile);
document.getDocumentElement().normalize();
NodeList nodeList = document.getElementsByTagName("student");
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
if(element.getElementsByTagName("firstname").item(0).getTextContent().equals(firstName)){
System.out.println("Full Name : "+element.getElementsByTagName("firstname").item(0).getTextContent()+" "+
element.getElementsByTagName("lastname").item(0).getTextContent());
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
控制台输出,
Enter the first name: Smith
Full Name : Smith Mike // when enter the first name as "Smith"
推荐阅读
- ruby - 获取 Stripe 费用信息 rails 5 创建订单
- android - Android:WebView 触摸事件监听器
- java - 方法头中@ResponsePayload的目的是什么 - spring
- html - 如果弹出模式对话框,禁用溢出-y
- hyperledger-fabric - 在超级账本中使用单个查询显示来自 2 个资产的数据?
- python - 获取 wrapInstance 的父级会导致窗口中断
- google-api - 在 googleapi 库上使用 async/await 返回 undefined
- elasticsearch - 更新 Elasticsearch 索引是否需要更新 Kibana 索引模式?
- google-apps-script - 如果满足标准,GAS-清除单元格
- javascript - 更改 html 表中的一个字段,会更改该表中的特定元素。不在其他表中