HighDots Forums  

DOM Document erzeugen

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss DOM Document erzeugen in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Fabian Lenzen
 
Posts: n/a

Default DOM Document erzeugen - 03-19-2008 , 09:21 AM






Hallo,
ich versuche gerade, ein Document zu erzeugen. Dazu versuche ich es mit:

new Document();

Document ist doch der Typ, von dem auch andere XML Dokumente sind, oder irre ich mich? Und diese Funktion ist ja auch (zumindest bei mir) definiert. Trotzdem erhalte ich eine Fehlermeldung:

Quote:
JavaScript - http://localhost:81/soap.htm
Inline script thread
Error:
Unhandled exception: [Object DOMException]
code: 9
message: NOT_SUPPORTED_ERR
Backtrace:
Line 2 of inline#1 script in http://localhost:81/soap.htm
d = new Document();
Kann mir jemand damit irgendwie weiterhelfen?

Mit freundlichen Grüßen
Fabian Lenzen.


Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-19-2008 , 01:52 PM






Fabian Lenzen wrote:
Quote:
Hallo, ich versuche gerade, ein Document zu erzeugen. Dazu versuche ich
es mit:

new Document();
`Document' liefert keine Referenz zu einem Konstruktor, es sei denn, Du
definierst

function Document(...)
{
...
}

Quote:
Document ist doch der Typ, von dem auch andere XML Dokumente sind, oder
irre ich mich?
Ja. `Document' ist kein Typ, es ist der Bezeichner eines Interfaces bzw.
die Implementation desselben in einigen DOMs. Wir haben das bereits in der
vergangenen Woche wieder hier diskutiert; bitte erst lesen, dann denken,
dann posten.

http://dcljs.de/

Quote:
Und diese Funktion ist ja auch (zumindest bei mir) definiert.
`Document' ist ein Host-Objekt, welches in keinem mir bekannten DOM die
internen Methoden [[Call]] oder [[Construct]] implementiert, also in
keinerlei Hinsicht mit dem Begriff "Funktion" assoziiert werden kann.
Falls Du trotz der schon erhaltenen Fehlermeldung einen Beweis dafür brauchst:

try
{
Document();
}
catch (e)
{
// Gecko-DOM: "TypeError: Document is not a function"
window.alert(e);
}

Quote:
Trotzdem erhalte ich eine Fehlermeldung:
[...]
Bitte nicht das Zitatzeichen `>' für Zitate aus Drittquellen verwenden,
sondern `|'. (Für Code-Zitate am besten nur eine Einrückung verwenden,
damit der gepostete Code ohne Änderung getestet werden kann.)

Quote:
Kann mir jemand damit irgendwie weiterhelfen?
Document-Objekte (d.h. Objekte, die dieses Interface implementieren) lassen
sich *so* _nicht_ erzeugen, aber auf verschiedene andere Arten, in
Abhängigkeit vom verwendeten DOM. Was willst Du wo erreichen?


PointedEars
--
Aber das Sperren der rechten Maustaste hat auch seine Vorteile: so
bleibt uns der Anblick einer ganzen Menge dilettantisch und lieblos
zusammengewurstelten Quellcodes erspart. (Ulrich 'Droeppez' Kritzner in
http://selfhtml.de/forum/zeigebeitra...4&thread=31592)


Reply With Quote
  #3  
Old   
Fabian Lenzen
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-19-2008 , 04:36 PM



Hallo,

Quote:
Hallo, ich versuche gerade, ein Document zu erzeugen. Dazu versuche ich
es mit:

new Document();

`Document' liefert keine Referenz zu einem Konstruktor, es sei denn, Du
definierst[…]
Oh, da habe ich mich dann wohl gründlich verrant.

Quote:
Wir haben das bereits in der vergangenen Woche wieder hierdiskutiert; bitte erst lesen, dann denken, dann posten.
Tschuldigung. Hätte vielleicht vorher Archivseiten durchsehen sollen
(Habe die Gruppe erst vor kurzem abboniert)

Quote:
Bitte nicht das Zitatzeichen `>' für Zitate aus Drittquellenverwenden, sondern `|'. (Für Code-Zitate am besten nur eineEinrückung verwenden, damit der gepostete Code ohne Änderung getestetwerden kann.)
Gut, werde mich in Zukunft dran halten.

Quote:
Kann mir jemand damit irgendwie weiterhelfen?

Document-Objekte (d.h. Objekte, die dieses Interface implementieren)lassen sich *so* _nicht_ erzeugen, aber auf verschiedene andereArten, in Abhängigkeit vom verwendeten DOM. Was willst Du woerreichen?
Ich möchte eine SOAP Anfrage an einen Webservice stellen. Da für SOAP
keine spezielle Unterstützung in JavaScript existiert (und auch das
SOAPCall Objekt von Mozilla wieder rausfliegt), wollte ich nun das XML
Dokument händisch zusammensetzen. Dazu ein DOM zu verwenden, dass ich
gegebenenfalls noch auf Anwendereingaben hin manipulieren kann, fand
ich am bequemsten, sodass ich dieses dann am ende als String ausgeben
lasse (wenn das denn möglich ist) und an den webservice sende.

Mit freundlichen Grüßen
Fabian Lenzen


Reply With Quote
  #4  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-19-2008 , 05:39 PM



Fabian Lenzen wrote:
Quote:
Bitte nicht das Zitatzeichen `>' für Zitate aus Drittquellenverwenden,
sondern `|'. (Für Code-Zitate am besten nur eineEinrückung verwenden,
damit der gepostete Code ohne Änderung getestetwerden kann.)

Gut, werde mich in Zukunft dran halten.
Danke. Lies bitte auch http://einklich.net/usenet/usenet1.htm ff.
Beispielsweise sind Deine Zeilen deutlich zu lang (hier erneut manuell
umbrochen). Ich bin auch nicht sicher, ob sich Opera 9.26 wirklich als
News*writer* eignet. Schau Dir doch alternativ mal Mozilla Thunderbird
2.0.x an, damit habe ich gute Erfahrungen gemacht.

Quote:
Document-Objekte (d.h. Objekte, die dieses Interface implementieren)
lassen sich *so* _nicht_ erzeugen, aber auf verschiedene andere Arten,
in Abhängigkeit vom verwendeten DOM. Was willst Du wo erreichen?

Ich möchte eine SOAP Anfrage an einen Webservice stellen. Da für SOAP
keine spezielle Unterstützung in JavaScript existiert
JFYI: *Keines* der genannten Host-Objekte ist Teil der Programmiersprache
(deshalb heissen sie ja Host-Objekte im IUnterschied zu nativen Objekten),
sie werden vom (z.B. Gecko-)DOM als API per ECMAScript-Anbindung
bereitgestellt (siehe ECMAScript Binding-Abschnitt in den
W3C-DOM-Spezifikationen).

Quote:
(und auch das SOAPCall Objekt von Mozilla wieder rausfliegt),
Ja, schade, dass sich kein Owner gefunden hat.

Quote:
wollte ich nun das XML Dokument händisch zusammensetzen. Dazu ein DOM zu
verwenden, dass ich gegebenenfalls noch auf Anwendereingaben hin
manipulieren kann, fand ich am bequemsten, sodass ich dieses dann am ende
als String ausgeben lasse (wenn das denn möglich ist) und an den
webservice sende.
Dafür gibt es zwei Möglichkeiten. E4X, unterstützt in JavaScript (nur in
Mozilla-basierten UAs) seit Version 1.6:

var sDoc =
<s:Envelope xmlns:s="http://www.w3.org/2001/12/soap-envelope">
<s:Body>
<m:TitleInDatabase xmlns:m="http://www.seminar-db.de/soap">
DOM, SAX und SOAP
</m:TitleInDatabase>
</s:Body>
</s:Envelope>;

Oder:

var sDoc = new Array(
'<?xml version="1.0"?>',
'<s:Envelope xmlns:s="http://www.w3.org/2001/12/soap-envelope">',
' <s:Body>',
' <m:TitleInDatabase xmlns:m="http://www.seminar-db.de/soap">',
' DOM, SAX und SOAP',
' </m:TitleInDatabase>',
' </s:Body>',
'</s:Envelope>'
).join("\n");

Mit einem Markup-Parser lässt sich beides in ein Document-Objekt
konvertieren, z.B. im Gecko-DOM:

var soapReqDoc = (new DOMParser()).parseFromString(sDoc, "text/xml");
window.alert(soapReqDoc);

/* manipulate the document with DOM mutator methods here */

var ser = new XMLSerializer();
sDoc = ser.serializeToString(soapReqDoc);

/* create XHR object here */

xhr.send(sDoc);

MSXML dürfte ähnliche Features anbieten, siehe MSDN Library.


PointedEars
--
Java hat in etwa soviel mit JavaScript zu tun, wie Gummi mit Gummibärchen ;-)
-- Alexander Clauss
in <1fkgjxx.pels4b1saxyvaN%aclauss (AT) hrzpub (DOT) tu-darmstadt.de>


Reply With Quote
  #5  
Old   
Martin Honnen
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-20-2008 , 08:18 AM



Fabian Lenzen wrote:

Quote:
Ich möchte eine SOAP Anfrage an einen Webservice stellen. Da für SOAP
keine spezielle Unterstützung in JavaScript existiert (und auch das
SOAPCall Objekt von Mozilla wieder rausfliegt), wollte ich nun das XML
Dokument händisch zusammensetzen. Dazu ein DOM zu verwenden, dass ich
gegebenenfalls noch auf Anwendereingaben hin manipulieren kann, fand
ich am bequemsten, sodass ich dieses dann am ende als String ausgeben
lasse (wenn das denn möglich ist) und an den webservice sende.
var doc = document.implementation.createDocument('', 'root', null);
gibt dir in Mozilla und Opera ein XML-DOM-Dokument mit dem Wurzelelement
namens 'root'. Dann kannst du mit weiteren DOM-Operationen Knoten
hinzufügen. Serialisieren kannst mittels
var xml = new XMLSerializer().serializeToString(doc);

--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #6  
Old   
Fabian Lenzen
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-20-2008 , 12:26 PM



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Okay danke euch beiden. Werde mir die beiden Lösungen mal genauer
ansehen

Mit freundlichen Grüßen
Fabian Lenzen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32) - WinPT 1.2.0

iD8DBQFH4pA50e01+ZHU2dkRAv5jAJwLxfgeUT5BHNpufxir56 y7iocYSACfbMUM
8UPXU64/n+zFzt+v4mdJDys=
=nBuL
-----END PGP SIGNATURE-----

Reply With Quote
  #7  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: DOM Document erzeugen - 03-20-2008 , 01:54 PM



Martin Honnen wrote:
Quote:
Fabian Lenzen wrote:
Ich möchte eine SOAP Anfrage an einen Webservice stellen. Da für SOAP
keine spezielle Unterstützung in JavaScript existiert (und auch das
SOAPCall Objekt von Mozilla wieder rausfliegt), wollte ich nun das XML
Dokument händisch zusammensetzen. Dazu ein DOM zu verwenden, dass ich
gegebenenfalls noch auf Anwendereingaben hin manipulieren kann, fand
ich am bequemsten, sodass ich dieses dann am ende als String ausgeben
lasse (wenn das denn möglich ist) und an den webservice sende.

var doc = document.implementation.createDocument('', 'root', null);
gibt dir in Mozilla und Opera ein XML-DOM-Dokument mit dem Wurzelelement
namens 'root'. [...]
Das habe ich absichtlich nicht vorgeschlagen, weil man sich dann
schon das Template Knötchen für Knötchen zusammenbauen muss.


PointedEars
--
Java hat in etwa soviel mit JavaScript zu tun, wie Gummi mit Gummibärchen ;-)
-- Alexander Clauss
in <1fkgjxx.pels4b1saxyvaN%aclauss (AT) hrzpub (DOT) tu-darmstadt.de>


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.