Hallo,
ja, kann ich. Hui, das war ja 'ne leichte Frage ;-)
Wissen sie wie spät es ist? Ja!
Okay, ernsthaft: Was ich meine ist, dass Du eine JavaScript-Variable in den Code schreibst, die als _Text_ den XML-Code enthält. Anschließend nutzt Du einen der vielfältigen Browser-Mechanismen, um aus einem Text einen DOM-Baum zu erzeugen. Und schwupps, schon hast Du exakt die Situation, in der Du sein möchtest, nur mit validem Code.
Also müsste der Anwender etwas in der folgenden Art definieren:
<script type="text/javascript">
var report = '
<REPORT
id="packliste"
typ="TABELLE"
from="ARTIKEL"
></REPORT>
<TABELLE
report="packliste"
header="Packliste"
table="border=2 cellspacing=0 cellpadding=5"
format="font:10pt verdana;background-color:ThreeDLightShadow;"
></TABELLE>
<SPALTE
report="packliste"
header="Menge"
data="[[[Menge]]]"
sum="0"
format="text-align:right;"
></SPALTE>
<SPALTE
report="packliste"
header="Bezeichnung"
data="[[[Artikelbeschreibung]]]"
sort="A"
></SPALTE>
<DETAIL
report="packliste"
suppress="y"
format="background:#eeffee;"
alt="background:#ccffcc;"
></DETAIL>
<SUMME
report="packliste"
format="background:white;"
alt="background:InfoBackground;"
suppress=""
></SUMME>
<GESAMT
report="packliste"
format=""
suppress="Y"
></GESAMT>
';
</script>
Und wie komme ich dann zum DOM? Einfach per innerHTML irgendwo einhängen? Irgendwie stehe ich noch immer auf dem Schlauch :(
Selbes Prinzip wie oben, nur dass Du statt der String-Bearbeitung einen AJAX-Request machst. In beiden Fällen hast Du das XML lediglich aus dem Dokument-Baum woanders hin ausgelagert.
Wie schon erwähnt, ist da nichts auszulagern, weil alles in einem Dokument steht. Es gibt also keine Adresse für einen AJAX-Request.
Wenn Du den <script>-Block richtig erzeugst, muss der Anwender lediglich die Zeichenkette "]]>" vermeiden und das XML so erzeugen, wie Du es gerne hättest.
Selbst wenn der Anwender das hinbekommt, kann nicht ausgeschlossen werden, dass diese Zeichen in Variablen stehen, die vom Server für die Generierung der Daten verwendet werden.
Ralf