import java.io.File; import java.util.Iterator; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.w3c.dom.Document; import org.w3c.dom.Element; public class Dom4JXml { private Document document = null; public void getDocument() { //获取解析器对象,解析xml文件,获取document对象 SAXReader saxReader = new SAXReader(); try { document = saxReader.read(new File("收藏信息.xml")); } catch (DocumentException e) { e.printStackTrace(); } } //显示手机品牌/型号 public void showInfo() { //1.获取根节点 Element root=document.getRootElement () ; //2.获取根节点下的Brand子节点,遍历 for (Iterator<Element> itBrand=root.elementIterator() ; itBrand. hasNext () ;) { Element brandElement=itBrand. next () ; System. out.println("品牌: " +brandElement.attributeValue ("name") ) ; //获取型号 for (Iterator<Element> itType = brandElement. elementIterator() ; itType.hasNext() ; ) Element typeElement=itType.next () ; System. out.println("\t型号:"+typeElement .attributeValue ("name") ) ; } } //添加三星Galaxy Fold . public void add () { //1.获取根节点 Element root=document . getRootElement () ; //2.创建Brand节点 Element brand=root. addElement ( "Brand") ; //设置Brand的属性值 brand. addAttribute ("name", "三星") ; //3.根据Brand创建type节点 Element type=brand. addElement ("Type") ; type . addAttribute ("name","Galaxy Fold") ; showInfo() ; } }
时间: 2024-03-19 17:45:36 浏览: 121
这段代码使用了两个不同的XML解析库,一个是`org.dom4j`包,另一个是`org.w3c.dom`包,这可能会导致一些混淆和错误。建议只选择一个库,并在整个项目中保持一致。
另外,该代码中的`getRootElement()`方法应该是`org.dom4j.Element`类的方法,而不是`org.w3c.dom.Element`类的方法。如果你使用的是`dom4j`库,应该删除第5行的`import org.w3c.dom.Document;`和第6行的`import org.w3c.dom.Element;`语句,确保代码中的`Element`类都来自`org.dom4j`包。
最后,代码中的`showInfo()`方法和`add()`方法都没有调用`getDocument()`方法,因此`document`对象没有成功加载XML文档。你需要在这两个方法中添加如下代码:
```java
getDocument(); // 加载XML文档,获取document对象
```
这样才能确保代码正常运行。
相关问题
在Java中使用Dom4j库解析XML文档时,如何创建一个元素并为其添加属性?请提供示例代码。
在Java中使用Dom4j解析XML文档的过程中,创建元素并添加属性是基本操作之一。为了帮助你更好地掌握这一技能,推荐参考这份资料:《Dom4j入门:Java解析XML详解》。这份资源详细介绍了如何在Java中使用dom4j库来操作XML文档,包括创建和修改元素等。
参考资源链接:[Dom4j入门:Java解析XML详解](https://wenku.csdn.net/doc/1zwaj63yfj?spm=1055.2569.3001.10343)
使用Dom4j创建一个新的XML元素并为其添加属性涉及到几个步骤,具体如下:
首先,需要导入Dom4j的相关类库。然后,创建一个Document对象,它是XML文档的根对象。接着,使用Document对象创建Element实例,这代表你要添加到XML中的新元素。最后,使用Element对象提供的方法为其添加属性。
下面是一个简单的示例代码:
```java
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
public class Dom4jExample {
public static void main(String[] args) throws DocumentException, IOException {
// 创建Document对象
Document document = DocumentHelper.createDocument();
// 创建根元素
Element root = document.addElement(
参考资源链接:[Dom4j入门:Java解析XML详解](https://wenku.csdn.net/doc/1zwaj63yfj?spm=1055.2569.3001.10343)
阅读全文