Zur Navigation

Variable aus HTML-Formular an JavaScript übergeben [2]

11 Andreas

Danke Jörn,

ich stimme dir zu, dass das so funktioniert. Ich meinte das allerdings etwas anders: Die Funktion aus item7 lädt die XML-Daten aus einer Datei. Wie passe ich die Funktion an, damit sie die Daten via document.getElementById akzeptiert?

Ich habe hier schon verschiedene Ideen probiert, bin allerdings icht zum Ziel gekommen.

23.11.2009 20:07

12 Jörg

Ich verstehe ehrlich gesagt das Problem noch nicht ganz. Möchtest du das Textarea aus einer anderen Datei auslesen? oder welchen Zweck soll diese Funktion erfüllen, den ein einfaches Auslesen des Textfeldes nicht erfüllt?

Vielleicht beschreibst du mal, wozu und wie du diese Funktion einsetzen möchtest, und was daran nicht funktioniert?

23.11.2009 23:31

13 Andreas

Die Daten einfach via document.getElementById an die Funktion xmlAnalyse() zum Auswerten dieser zu übergeben, klappt nicht, weil die Daten im XML-Format sind. Je nach Browser, in dem das Script läuft, wird eine unterschiedliche Methode zum Laden der Daten erforderlich.

Ich habe daher die Funktion aus item7 genutzt: Hier funktioniert das Laden der Daten im XML-Format, nur eben aus einer externen Datei anstatt einem Textarea.

24.11.2009 07:25

14 Jörg

Wie ist denn die Funktion xmlAnalyse() definiert?

24.11.2009 10:11

15 Andreas

Die Funktion xmlAnalyse() parst die Knoten des XML-Dokuments, welches mittels der Funktion aus item7 geladen wurde.

BTW: Ich habe mal versucht die Daten via document.getElementById direkt an die Funktion xmlAnalyse() zu übergeben, was aber nicht funktioniert. Wenn ich, wie geschrieben, die Daten aus einer Datei hole, was wiederum mit der Funktion aus item7 klappt, und von da aus an xmlAnalyse() übergebe, dann klappt die Analyse.

24.11.2009 11:49 | geändert: 24.11.2009 11:49

16 Jörg

Mit "Wie ist denn die Funktion xmlAnalyse() definiert?" meinte ich die (vollständige) Definition dieser Funktion im JavaScript-Code.

24.11.2009 12:13

17 Andreas

Ah - OK:

function xmlAnalyse() {
  var InputS1Node = "GrpHdr"
  var InputS1 = xmlDokument.getElementsByTagName(InputS1Node);

  for (S1a = 0; S1a < InputS1[0].childNodes.length; S1a++) {
    if (InputS1[0].childNodes[S1a].nodeType != 3) {
      OutputMatrixNodeS1.push(InputS1[0].childNodes[S1a].nodeName);
      if (InputS1[0].childNodes[S1a].firstChild.data == null || InputS1[0].childNodes[S1a].firstChild.data.indexOf(unescape('%0A')) == 0) {
        OutputMatrixDataS1.push("");
      } else {
        OutputMatrixDataS1.push(InputS1[0].childNodes[S1a].firstChild.data);
      }
    }
  }
}

Die Variablen OutputMatrixNodeS1 und OutputMatrixDataS1 sind als Arrays definiert und dienen dazu, die Namen der Nodes sowie die Elemente selbiger aufzunehmen. Geparst wird dabei nur in einem bestimmten Zweig der XML-Struktur.

24.11.2009 12:35

18 Jörg

var InputS1 = xmlDokument.getElementsByTagName(InputS1Node);

OK, jetzt verstehe ich - an dieser Stelle wird ein DOM-Objekt benötigt - der Inhalt des Textareas ist aber ja noch ein String.

Auf dieser Seite ist auch ein Script aufgeführt, welches einen String in ein DOM-Objekt überführt (unter "Load an XML String"), vielleicht hilft dir dies weiter:

http://www.w3schools.com/Dom/dom_parser.asp

24.11.2009 14:19

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]