[ Pobierz całość w formacie PDF ]
.Abyuzyskaæ komentarze dla danego Elementu, nale¿y wywo³aæ metodêgetMixedContent(), która zwraca wszystkie obiekty Comment, Element i String(dane tekstowe), zagnie¿d¿one wewn¹trz elementu i w takiej kolejnoœci, w jakiejwystêpuj¹ w dokumencie.Za³Ã³¿my, ¿e mamy nastêpuj¹cy plik XML:Java i XMLCzytamy sobie spis treœci!Zazwyczaj komentarze nie s¹ u¿ywane przez aplikacjê.Gdyby jednak zasz³a takapotrzeba, poni¿szy kod pozwoli nam je „wyci¹gn¹æ” z dokumentu:List docContent = doc.getContent();List elemContent = root.getMixedContent();for (int i=0, size=docContent.size(); iNie zainstalowano mened¿era okienSound Blaster Platinum----------------------Testujê odczytywanie dokumentu z DOM.----------------------Java i XMLWprowadzenieCo to jest?.----------------------Testujê odczytywanie dokumentu z SAX.----------------------Java i XMLWprowadzenie.Taki wynik zosta³ uzyskany po uruchomieniu programu testuj¹cego na plikucontents.xml, utworzonym we wczeœniejszych rozdzia³ach.ElementJavaXML:Dodatkowe (i elementy potomne) zosta³ opatrzony komentarzami, poniewa¿definicja DTD nie pozwala na jego istnienie.Jeœli nie by³oby komentarzy,program zg³osi³by nastêpuj¹cy komunikat o b³êdzie (kiedy przy tworzeniuegzemplarza SAXBuilder lub DOMBuilder za¿¹dano by sprawdzania poprawnoœci):org.jdom.JDOMException: Error in building from stream: Error on line 59 of XMLdocument: Element type "JavaXML:Dodatkowe" must be declared.at org.jdom.input.DOMBuilder.build(DOMBuilder.java, Compiled Code)at org.jdom.input.DOMBuilder.build(DOMBuilder.java, Compiled Code)at JDOMTest.domDocument(JDOMTest.java, Compiled Code)at JDOMTest.main(JDOMTest.java, Compiled Code)Error on line 59 of XML document: Element type "JavaXML:Dodatkowe" must bedeclared.Jedn¹ z istotnych cech interfejsu JDOM jest diagnozowanie b³êdów — powy¿szykomunikat dostarcza szczegó³owych informacji o b³êdach w danych wejœciowychXML i tym samym upraszcza sprawdzanie ich poprawnoœci.Poniewa¿ metody wejœciai wyjœcia zajmuj¹ tylko cztery wiersze kodu (patrz domDocument() isaxDocument()), JDOM mo¿e zostaæ wykorzystany w³aœnie do sprawdzaniapoprawnoœci i formatowania dokumentów XML.Nadesz³a pora, aby przypomnieæ sobie programy SAXParserDemo i DOMParserDemo zrozdzia³Ã³w 3.i 7.Oba te programy wyswietla³y dokumenty XML pobrane z plikuwejœciowego; SAXParserDemo udostêpnia³ podgl¹d samego procesu przetwarzania,zaœ DOMParserDemo to w³aœciwie klasa „³adnie drukuj¹ca” dokument XML.Przyk³ad8.7 to kod Ÿród³owy com.oreilly.xml.PrettyPrinter, klasy narzêdziowejwykonuj¹cej to samo zadanie co DOMParserDemo, ale poprzez JDOM.Uwa¿ny Czytelnik móg³ zauwa¿yæ, ¿e w powy¿szym kodzie nie zajêliœmy siêsprawdzaniem poprawnoœci ani przestrzeniami nazw.Poniewa¿ JDOM obs³ugujeprzestrzenie nazw wewnêtrznie (a nie polegaj¹c na informacjach dostarczanychprzez DOM Level 2 czy SAX 2.0), sprawdzanie poprawnoœci odbywa siê przyjednoczesnej obs³udze przestrzeni nazw.JDOM faktycznie wy³¹cza „œwiadomoœæ”przestrzeni nazw w klasach SAXBuilder i DOMBuilder! Nie tylko umo¿liwia toprzeprowadzenie sprawdzania poprawnoœci, ale tak¿e przyspiesza przetwarzaniedokumentów XML.Przyk³ad 8.7.Klasa narzêdziowa com.oreilly.xml.PrettyPrinterpackage com.oreilly.xml;import java.io.File;import org.jdom.Document;import org.jdom.input.Builder;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter;/*** PrettyPrinter wyœwietla dokument XML spod podanego URI** @author Brett McLaughlin* @author Jason Hunter* @version 1.0*/public class PrettyPrinter {/**** £adnie drukuje XML danego URI**/public static void main(String[] args) {if (args.length != 1) {System.out.println("U¿ycie: " +"java com.oreilly.xml
[ Pobierz całość w formacie PDF ]