Vielleicht ist das nicht gerade eine Programmierfrage. Aber ...
Warum ist org.w3c.dom.NodeList keine Erweiterung der Oberfläche java.lang.Iterable ?
Es klingt so kontraproduktiv für mich. Vor allem, weil die Dokumentation sagt:
Die NodeList-Schnittstelle stellt die Abstraktion einer geordneten Sammlung von Knoten bereit, ohne zu definieren oder einzuschränken, wie diese Sammlung implementiert wird. NodeList-Objekte im DOM sind live. Die Elemente in der NodeList sind über einen ganzzahligen Index ab 0 zugänglich.
PS: Bitte unterstützen Sie Ihre Antworten gegebenenfalls mit geeigneten Zitaten.
org.w3c.dom.NodeList
ist älter als Iterable
, was in Java Version 1.5 eingeführt wurde.
Vielleicht wurde es aus Kompatibilitätsgründen nicht aktualisiert, aber ich habe keine Referenzen dafür.
Das w3c definiert nur Spezifikationen (XML, XSLT, DOM, etc ...) und versucht nicht, die API an eine bestimmte Sprache oder Plattform anzupassen.
Es ist für Entwickler von Parsern gedacht, um ein Produkt zu erstellen, das mit existierendem Code kompatibel ist, der diese Parser verwendet.
Wenn Sie Ihr Anwendungsframework erstellen, empfiehlt es sich, alle API-Aufrufe zu umbrechen, damit Sie steuern können, wie auf die API in verschiedenen Sprachen oder auf verschiedenen Plattformen zugegriffen wird.
Erstellen Sie in Java, JavaScript, C # oder was auch immer Sie verwenden ein Klassenobjekt, das den Zugriff auf die API-Aufrufe umschließt. In JavaScript wird es hilfreich sein, Code browserkonform zu gestalten. Wenn Sie Ihre Lösung für mehrere Plattformen veröffentlichen, müssen Sie nur Ihre Wrapper-Klasse aktualisieren.
Hier ist ein Beispiel unten, aber Sie können sich so schick vorstellen, wie Sie wollen: Definieren Sie Ihre eigene Wrapper-Schnittstelle und Basisklasse mit übersteigenden Klassen, um spezifische Implementierungen bereitzustellen.
%Vor%Tags und Links java dom xml-parsing nodelist