Problem mit JS-Code in einem String

LordNikkon

Mitglied
Hallo,

ich habe das Problem, dass ich per HTTPRequest mir eine XML Datei hole und dann auf die einzelnen Elemente dieser Zugreife.
Beispiel XML:

Code:
<?xml version="1.0"?>
<!DOCTYPE iq-doc [
  <!ELEMENT iq-doc (IQ_BODY,IQ_LEFT,IQ_TITLE)>
  <!ELEMENT IQ_BODY   (#PCDATA)>
  <!ELEMENT IQ_LEFT   (#PCDATA)>
  <!ELEMENT IQ_TITLE   (#PCDATA)>
]>

<iq-doc>

	<IQ_BODY>
    IQ_BODY - Inhalt der Seite <br><br>
                          <br><br><br><br><br>
                          asda sdas&ouml;d alsdk&ouml;a kdla kd&ouml;a ksdl&ouml;askd&ouml;as
                          <div id="TEST_show"></div>
                          <script>
                             var oSel = new IQ_Forms_Select("TEST","oSel","selectField");
                             oSel.add("Test1","val1",false);
                             oSel.add("Test2","val2",false);
                             oSel.add("Test3","val3",true);
                             oSel.add("Test4","val4",false);
                             oSel.add("Test5","val5",false);
                             oSel.add("Test6","val6",false);
                             oSel.show();
                          </script>
                          asda s dashdg ashd gasjdg jas
                          <div id="TEST2_show"></div>
                          <script>
                             var oSel2 = new IQ_Forms_Select("TEST2","oSel2","selectField");
                             oSel2.add("Test1","val1",false);
                             oSel2.add("Test2","val2",false);
                             oSel2.add("Test3","val3",true);
                             oSel2.add("Test4","val4",false);
                             oSel2.add("Test5","val5",false);
                             oSel2.add("Test6","val6",false);
                             oSel2.show();
                          </script> 
	</IQ_BODY>
	
	<IQ_LEFT>
           IQ_LEFT - Navigation Ebene 3 oder Ebene 1 für Seite <br>
	</IQ_LEFT>
 
 	<IQ_TITLE>Startseite</IQ_TITLE>
  
</iq-doc>

Das was in IQ_BODY steht erhalte ich als String in meiner Funktion nun würde ich gerne diesen String ausführen lassen...leider habe ich noch keine Möglichkeit gefunden wie? Eval() kann ich ja nicht auf diesen String anwenden? Besser gesagt schon probiert, leider gehts net...
Hatte es auch schon so probiert:

Code:
function IQ_eval_code (sData) {
  var iPos1 = sData.indexOf('<script>');
  var iPos2 = sData.indexOf('</script>');
  if (iPos1==-1) {
      return sData;
  }
  var sRet = "";
  sRet  = sData.substr(0,iPos1);
  sRet += eval (sData.substr(iPos1+8,iPos2-(iPos1+8)));
  sRet += sData.substr(iPos2+9,sData.length-(iPos2+9));
  return IQ_eval_code (sRet);
}

Leider haut das auch nicht hin. Bin irgendwie ratlos oder besser gesagt hoffe auf eure Hilfe!

Greetz
l|N
 
Du kannst dir das ganze mit der String-Verarbeitung sparen.
Sofern du es hinbekommst, die Fehler aus dem XML-Dokument zu beseitigen, kannst über responseXML darauf wie bei jedem Dokument zugreifen, z.B. per getElementsByTagName()


....
Code:
eval(request.responseXML.getElementsByTagName('script')[0].firstChild.data)
 

Neue Beiträge

Zurück