2 Stimmen

Holen Sie die Attribute aus einer XML-Datei mithilfe von Java.

Ich habe eine XML-Datei mit folgender Struktur:

    Anonym

Wie kann ich die Attributnamen und -werte extrahieren, indem ich was auch immer verwenden möchte?

Ich habe es mit JDOM versucht, aber ich finde immer noch keinen Weg, um die Attribute des Elements zu erhalten.

Element root = doc.getRootElement();
List allChildren = root.getChildren();
Iterator i = listEtudiants.iterator();
while(i.hasNext())
{
    Element current = (Element)i.next();
    System.out.println(current.getChild("elementName").getText());
    // damit erhalte ich nur den Wert innerhalb von > und 

`EDIT: Ich habe immer noch ein Problem mit dieser Datei. Ich kann nicht auf das Attribut "foo" und seinen Wert "moo" zugreifen.

      Michel

         smith
         jack

      Superstar`

4voto

João Silva Punkte 84947

Wenn Sie den Namen des Attributs kennen, können Sie getAttributeValue verwenden, um seinen Wert zu erhalten:

current.getAttributeValue("att1"); // value1

Wenn Sie den Namen des/die Attribute nicht kennen, können Sie getAttributes() verwenden und über jedes Attribute iterieren:

List attributes = current.getAttributes();
Iterator it = attributes.iterator();
while (it.hasNext()) {
  Attribute att = (Attribute)it.next();
  System.out.println(att.getName()); // att1
  System.out.println(att.getValue()); // value1
}

0 Stimmen

Was meinst du? Kennst du den Namen des Attributes nicht?

0 Stimmen

GetAttributes() könnte das sein, wonach Sie suchen. [jdom.org/docs/apidocs/org/jdom/Element.html#getAttributes()](http://www.jdom.org/docs/apidocs/org/jdom/Element.html#getAttributes())

0 Stimmen

Weil sie Attribute des Elements Name und nicht Schüler sind, das durch Ihre aktuelle Variable dargestellt wird. Um den Name Knoten zu erhalten, müssen Sie die Kindknoten von Schüler erhalten, d.h. current.getChildren(), von denen der erste Name sein wird.

2voto

Dalshim Punkte 315

Mit JDOM (org.jdom.Element) Einfach benutzen :

current.getAttributes();
current.getAttributesValues();
current.getAttributeValue("AttributeName");

Und hier ist die Dokumentation : http://www.jdom.org/docs/apidocs/org/jdom/Element.html

EDIT : Hier ist ein Beispiel, was du mit getAttributes() machen kannst

List l_atts = current.getAttributes();
for (Attribute l_att : l_atts) {
    System.out.println("Name = " + l_att.getName() + " | Wert = " + l_att.getValue());
}

EDIT 2 : Für dein Problem mit foo und moo, ruf einfach getAttributes nicht am richtigen Element auf. Du musst zuerst das name Element erreichen, bevor du es aufrufst. Wenn du deine einfache Schleife ohne das Abrufen von Kindern der Elemente benutzt, über die du iterierst, wirst du nur über die "Student" Elemente iterieren.

0 Stimmen

Wenn Sie die Attributnamen nicht kennen, verwenden Sie getAttributes() und gehen Sie die Liste durch!

0 Stimmen

Wie kann ich die Attribute aus der von getAttributes() zurückgegebenen Liste extrahieren?

0 Stimmen

Mit einem Iterator oder einer for-Schleife durchlaufen Sie die Attribute. Das Attribute-Objekt bietet dann viele Methoden, um Wert oder Namen zu erhalten! getName() und getValue() zum Beispiel

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X