簡體   English   中英

獲取XML文件中所有屬性的名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM