我需要获取所有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>
答案 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
包导入