gpt4 book ai didi

java - 从java中的XML文件中删除元素

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:09 26 4
gpt4 key购买 nike

我已经从 Excel 数据库生成了一个 xml 文件,它自动包含一个名为“offset”的元素。为了使我的新文件符合我的需求,我想使用 java.util.Date 删除此元素。这是 xml 内容:

<Root><models><id>2</id><modelName>Baseline</modelName><domain_id>2</domain_id><description> desctiption </description><years><Y2013>value1</Y2013><Y2014>value2</Y2014><Y2015>value3</Y2015><Y2016>value4</Y2016><Y2017>value5</Y2017></years><offset/></models></Root>

我编写了一个代码,可以读取(使用缓冲读取器)并将内容写入新文件中,并使用条件 if:

        while (fileContent !=null){
fileContent=xmlReader.readLine();
if (!(fileContent.equals("<offset/>"))){
System.out.println("here is the line:"+ fileContent);
XMLFile+=fileContent;
}


}

但是不起作用

最佳答案

我个人建议使用适当的 XML 解析器,例如 Java DOM检查并删除节点,而不是将 XML 作为原始 String 处理(恶心)。尝试像这样删除你的“偏移”节点。

File xmlFile = new File("your_xml.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);

NodeList nList = doc.getElementsByTagName("offset");
for (int i = 0; i < nList.getLength(); i++) {
Node node = nList.item(i);
node.getParentNode().removeChild(node);
}

上面的代码删除了 xml 文件中的所有“偏移”节点。

如果资源/速度考虑是一个问题(例如,当 your_xml.xml 很大时),您最好使用 SAX ,速度更快(代码密集一些)并且不会将 XML 存储在内存中。

编辑文档后,您可能会想要convert it to a String解析到您选择的 OutputStream

希望这有帮助。

关于java - 从java中的XML文件中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22452272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com