Erste Attribut-Wert von Knoten mit dom4j

Meine XML-strukturiert ist, wie das Beispiel unten. Ich versuche, die Werte der attribute aus XML mittels dom4j.

<baz>
  <foo>
    <bar a="1" b="2" c="3" />
    <bar a="4" b="5" c="6" />
  </foo>
</baz>

Derzeit die Knoten werden in einer Liste gespeichert, mit dem folgenden code:

public List<Foo> getFoo() {
  String FOO_XPATH = "//baz/foo/*";
  List<Foo> fooList = new ArrayList<Foo>();
  List<Node> fooNodes = _bazFile.selectNodes(FOO_XPATH);

  for (Node n : fooNodes) {
    String a = /* get attribute a */
    String b = /* get attribute b */
    String c = /* get attribute c */
    fooNodes.add(new Foo(a, b, c));
  }

  return fooNodes;
}

Es ist eine ähnliche, aber doch andere Frage hier SO, aber das ist wieder ein Knoten mit dem Wert für eine bekannte Attribut-Schlüssel/Wert-paar mit dem folgenden code:

Node value = elem.selectSingleNode("val[@a='1']/text()");

In meinem Fall, den code kennt den Schlüssel, weiß aber nicht die Werte - das ist es, was ich brauche, um zu speichern. (Der obige Ausschnitt aus dem ähnlichen Frage/Antwort-gibt auch einen Knoten text Wert, wenn ich den Wert des Attributs.)

InformationsquelleAutor anjunatl | 2012-09-12
Schreibe einen Kommentar