簡體   English   中英

如何使用jdom獲取子元素的屬性

[英]How do I get the child element's attributes using jdom

我使用XML在Java中創建應用程序。

XML的

<?xml version="1.0" encoding="UTF-8"?>
<songlist id="slist">
  <song name="Club Can't Handle Me" path="E:/Google Chrome Downloads/club cant handle me.mp3" artist="Flo Rida feat. David Guetta" album="The Only One" />
  <song name="Call It What You Want" artist="Foster the People" path="E:\Google Chrome Downloads\call it what you want.mp3" album="Torches" />
  <song name="Break Your Heart (Remix) Ft. Ludacris" artist="Taio Cruz" path="E:\Google Chrome Downloads\Break your heart.mp3" album="Rockstarr" />
  <song name="Burn It To The Ground" artist="Nickelback" path="E:\Google Chrome Downloads\Burn It To The Ground.mp3" album="Dark Horse" />
  <song name="Levels" artist="Avicii" path="E:\Google Chroome Downloads\Avicii - Levels.mp3" album="" />
  <song name="Beautiful" artist="Akon" path="E:\Google Chrome Downloads\Beautiful.mp3" album="http://www.urbanascor.com" />
  <song name="Bumpy Ride" artist="" path="E:\Google Chrome Downloads\bumpy ride.mp3" album="" />
</songlist>

我試圖獲取子元素(歌曲)的屬性,但是我無法做到這一點。 我正在使用JDOM。

Java代碼

public class Opener extends WindowAdapter{
        @Override public void windowOpened(WindowEvent e){
            try{
            SAXBuilder builder = new SAXBuilder();
            File xmlFile = new File("E:/Yash programs/mp3/list.xml");
            Document doc = (Document) builder.build(xmlFile);
            Element rootNode = doc.getRootElement();
            List l = rootNode.getChildren();
            for(int i = 1;i<=l.size();i++){
                listModel.addElement(l.get(i).toString());
            }
        }
            catch (JDOMException ex) {
                Logger.getLogger(MP3View.class.getName()).log(Level.SEVERE, null, ex);
            }        
            catch(IOException io){
            io.printStackTrace();

        }

        }
    }

請幫我。 對不起,我是一個初學者。

請建議我另一種方法。

謝謝

List songElements = doc.getRootElement().getChildren("song");

for(int i = 1 ; i <= songElements.size() ; i++) {
   Element songElement = (Element) songElements.get(i);
   String name = songElement.getAttributeValue("name");
   String path = songElement.getAttributeValue("path");
   String album = songElement.getAttributeValue("album");
}

JDOM的集合是無類型的,因此您需要知道rootNode.getChildren的返回值是NodeList ,或者在這種情況下是Element

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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