[英]Get the name of all attributes in a XML-File
嘿,我有一個XML文件,我想導航到一個給定的節點,並獲取該節點的所有屬性的名稱。
例如:(XML文件)
<RootName>
<SubNode>
<Attribute1>Value 1</Attribute1>
<Attribute2>Value 2</Attribute2>
</SubNode>
</RootName>
到目前為止,這是我的代碼:(Java代碼)
File file = new File("data.xml");
try
{
/* Parse File */
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(file);
/* Find Starting Tag */
NodeList nodes = doc.getElementsByTagName(StartTag);
for (int i = 0; i < nodes.getLength(); i++)
{
Element element = (Element) nodes.item(i);
System.out.println(element);
}
現在我知道您可以找到一個給定名稱的特定屬性
String name = element.getAttribute("Attribute1");
但是我想動態地找到所有這些名稱。
提前致謝
斯科特
您正在尋找的是元素。 這是有關如何在XML中獲取元素的示例:
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
public class DOMElements{
static public void main(String[] arg){
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter XML File name: ");
String xmlFile = bf.readLine();
File file = new File(xmlFile);
if(file.exists()){
// Create a factory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Use the factory to create a builder
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
// Get a list of all elements in the document
NodeList list = doc.getElementsByTagName("*");
System.out.println("XML Elements: ");
for (int i=0; i<list.getLength(); i++) {
// Get element
Element element = (Element)list.item(i);
System.out.println(element.getNodeName());
}
}
else{
System.out.print("File not found!");
}
}
catch (Exception e) {
System.exit(1);
}
}
}
另請參閱您的問題下方的我的評論,該問題涉及如何正確設計XML,何時使用元素以及何時使用屬性。
element.getAttributes();
為您提供org.w3c.dom.NamedNodeMap
。 您可以使用item(int index)
方法遍歷此過程,以獲取org.w3c.dom.Attr
節點,並從getName()
方法getName()
這些節點的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.