编写一个Java解析xml并校验内容的代码

动态 未结 0 92
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是一个Java解析XML并校验内容的示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import java.io.File; import java.io.IOException; public class XmlParser { public static void main(String[] args) { try { // 创建DocumentBuilderFactory对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder对象 DocumentBuilder builder = factory.newDocumentBuilder(); // 加载XML文件到Document对象中 Document document = builder.parse(new File("example.xml")); // 获取所有book节点 NodeList bookList = document.getElementsByTagName("book"); // 遍历book节点 for (int i = 0; i < bookList.getLength(); i++) { // 获取当前book节点 Element book = (Element) bookList.item(i); // 获取book节点的属性值 String id = book.getAttribute("id"); // 获取book节点的子节点 NodeList childNodes = book.getChildNodes(); // 遍历book节点的子节点 for (int j = 0; j < childNodes.getLength(); j++) { Node node = childNodes.item(j); // 判断子节点是否为元素节点 if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; // 获取子节点的标签名和文本内容 String name = element.getNodeName(); String value = element.getTextContent(); // 校验内容是否符合要求 if (name.equals("title") && !value.startsWith("Java")) { System.out.println("Error: " + id + " - Title should start with 'Java'"); } else if (name.equals("price") && Double.parseDouble(value) < 0) { System.out.println("Error: " + id + " - Price should be greater than 0"); } } } } } catch (ParserConfigurationException | SAXException | IOException e) { e.printStackTrace(); } } } ``` 该代码使用了Java内置的DOM解析器,通过遍历XML文档中的节点来获取节点的属性值和子
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复