diff options
Diffstat (limited to 'files/pl/sax/index.html')
| -rw-r--r-- | files/pl/sax/index.html | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/files/pl/sax/index.html b/files/pl/sax/index.html deleted file mode 100644 index ec8b53ed2f..0000000000 --- a/files/pl/sax/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: SAX -slug: SAX -tags: - - Dodatki - - Rozszerzenia - - Wszystkie_kategorie -translation_of: Archive/SAX ---- -<p> -</p><p><b>SAX</b>, skrót dla <i>Simple API for XML</i>, jest parserem API. Po raz pierwszy SAX został szeroko zadoptowany w API dla XML w Javie i później został zaimplementowany w kilku innych środowiskach programowania. Wraz z <a href="pl/Firefox_2">Firefoksem 2</a>, parser SAX jest dostępny w aplikacjach XUL i rozszerzeniach. Aby zdobyć dodatkowe informacje, odwiedź <a class="external" href="http://www.saxproject.org/">stronę domową SAX</a>. -</p> -<h3 id="Szybki_start"> Szybki start </h3> -<p>Funkcjonalność parsera SAX jest dostępna poprzez interfejs <i>XML reader component</i>. Aby go utworzyć, zastosuj poniższy kod: -</p> -<pre class="eval">var xmlReader = Components.classes["@mozilla.org/saxparser/xmlreader;1"] - .createInstance(Components.interfaces.nsISAXXMLReader); -</pre> -<p>Po utworzeniu parsera SAX, będzie potrzebne ustawienie podprogramów obsługi dla zdarzeń, którymi jesteśmy zainteresowani <b>and fire off the parsing process</b>. Cała funkcjonalnośc jest dostępna poprzez interfejs <a href="https://dxr.mozilla.org/mozilla-central/source/parser/xml/public/nsISAXXMLReader.idl" rel="custom">nsISAXXMLReader</a>. -</p> -<h4 id="Ustawienie_obiektów_obsługi"> Ustawienie obiektów obsługi </h4> -<p>Obiekty obsługi (określone przez użytkownika) są zdefiniowanymi obiektami zaimplementowanymi w programie obsługi interfejsu SAX, które są zależne od rodzaju informacji, jaki chcemy otrzymać z parsera. Po rozpoczęciu procesu parsowania, obiekty obsługi przyjmują szereg wywołań zwrotnych dla treści XML, która jest parsowana. Dostępne są następujące obiekty obsługi: </p> -<table class="fullwidth-table"> -<tbody><tr> <th>Interfejs</th> <th>Zastosowanie</th> -</tr> -<tr> <td><a href="https://dxr.mozilla.org/mozilla-central/source/parser/xml/public/nsISAXContentHandler.idl" rel="custom">nsISAXContentHandler</a></td> <td>Pakiet obiektu obsługuje zawartość logiczną dokumentu (np. elementy, atrybuty, białe znaki oraz instrukcje przetwarzania).</td> -</tr> -<tr> <td><a href="https://dxr.mozilla.org/mozilla-central/source/parser/xml/public/nsISAXDTDHandler.idl" rel="custom">nsISAXDTDHandler</a></td> <td>Pakiet obiektu obsługuje proste podobne do DTD zdarzenia.</td> -</tr> -<tr> <td><a href="https://dxr.mozilla.org/mozilla-central/source/parser/xml/public/nsISAXErrorHandler.idl" rel="custom">nsISAXErrorHandler</a></td> <td>Pakiet obsługi błędów strumienia wejściowego.</td> -</tr> -<tr> <td><a href="https://dxr.mozilla.org/mozilla-central/source/parser/xml/public/nsISAXLexicalHandler.idl" rel="custom">nsISAXLexicalHandler</a></td> <td>Rozszerzenie obiektu SAX2 dla zdarzeń struktur leksykalnych (np. komentarzy i sekcji CDATA, deklaracji DTD oraz encji).</td> -</tr> -</tbody></table> -<p>Przykład implementacji najczęściej stosowanych obiektów obsługi: -</p> -<pre>function print(s) { - dump(s + "\n"); -} - -xmlReader.contentHandler = { - // nsISAXContentHandler - startDocument: function() { - print("startDocument"); - }, - - endDocument: function() { - print("endDocument"); - }, - - startElement: function(uri, localName, qName, /*nsISAXAttributes*/ attributes) { - var attrs = []; - for(var i=0; i<attributes.length; i++) { - attrs.push(attributes.getQName(i) + "='" + - attributes.getValue(i) + "'"); - } - - print("startElement: namespace='" + uri + "', localName='" + - localName + "', qName='" + qName + "', attributes={" + - attrs.join(",") + "}"); - }, - - endElement: function(uri, localName, qName) { - print("endElement: namespace='" + uri + "', localName='" + - localName + "', qName='" + qName + "'"); - }, - - characters: function(value) { - print("characters: " + value); - }, - - processingInstruction: function(target, data) { - print("processingInstruction: target='" + target + "', data='" + - data + "'"); - }, - - ignorableWhitespace: function(whitespace) { - // don't care - }, - - startPrefixMapping: function(prefix, uri) { - // don't care - }, - - endPrefixMapping: function(prefix) { - // don't care - }, - - // nsISupports - QueryInterface: function(iid) { - if(!iid.equals(Components.interfaces.nsISupports) && - !iid.equals(Components.interfaces.nsISAXContentHandler)) - throw Components.results.NS_ERROR_NO_INTERFACE; - return this; - } -}; -</pre> -<h4 id="Rozpoczęcie_parsowania"> Rozpoczęcie parsowania </h4> -<p><i>XML Reader component</i> potrafi parsować XML z łańcucha znakowego, <a href="pl/NsIInputStream">nsIInputStream</a> lub asynchronicznie przez interfejs <a href="pl/NsIStreamListener">nsIStreamListener</a>. Poniżej znajduje się przykład parsowania z łańcucha znakowego: </p> -<pre class="eval">xmlReader.parseFromString("<f:a xmlns:f='g' d='1'><BBQ/></f:a>", "text/xml"); -</pre> -<p>Wywoła to następującym rezultat na wyjściu (biorąc na siebie zawartość obiektu obsługi stosując przykład powyżej): -</p> -<pre>startDocument -startElement: namespace='g', localName='a', qName='f:a', attributes={d='1'} -startElement: namespace='', localName='BBQ', qName='BBQ', attributes={} -endElement: namespace='', localName='BBQ', qName='BBQ' -endElement: namespace='g', localName='a', qName='f:a' -endDocument -</pre> |
