如何使用java获取所有xml标记并使用新名称替换标记

时间:2014-02-28 10:00:36

标签: java xml

我需要获取所有xml标记名称(不是值)并用我的新名称替换一些标记名称

为了找到xml标签名称,我使用了下面的代码但它在“element.getnode()”行上显示错误

   File input = new File("C:\\Documents and Settings\\admin\\Desktop\\xml\\Data Entry.xml");
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    Document doc = (Document) dbf.newDocumentBuilder().parse(input);
   doc.getDocumentElement().normalize();
    System.out.println("Root element " + doc.getDocumentElement().getNodeName());

    NodeList nodeList=doc.getElementsByTagName("*");
       System.out.println("nodeList"+nodeList);

    for (int i=0; i<nodeList.getLength(); i++)
    {
    // Get element
    Element element = (Element)nodeList.item(i);
// getting error in this print statement    
   System.out.println(element.getNodeName());
    }
    }

这里尝试获取所有标记名并用新名称替换它。

这是XML文档:

<?xml version="1.0" encoding="UTF-16"?> 
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="w3.org/2001/XMLSchema-instance"; xsi:noNamespaceSchemaLocation="Data%20Entry.xsd" generated="2014-02-12T14:35:47"> 
    <Data_x0020_Entry> 
        <ID>1004</ID>
        <User>006Parthiban</User>
        <Data_x0020_Entry_x0020_Date>2013-12-26T00:00:00</Data_x0020_Entry_x0020_Date>
        <Publication>Daily Thanthi</Publication>
        <Edition>CE City Edition</Edition> 
        <Location>Bangalore</Location> 
        <Print_x0020_Date>2013-12-06T00:00:00</Print_x0020_Date>
        <PageNumber>1</PageNumber> 
    </Data_x0020_Entry> 
</dataroot>

1 个答案:

答案 0 :(得分:0)

我认为你从错误的包中导入。更改下面的导入

import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

在使用DOM解析器处理xml时,您需要仅从org.w3c.dom包导入