Электронный магазин на Java и XML




Получение файла XML - часть 2


Листинг 9.2. Файл moreovernews.dtd (moreovernews.dtd)

<!ELEMENT moreovernews (article*)> <!ELEMENT article (url,headline_text,source,media_type, cluster,tagline,document_url,harvest_time, access_registration,access_status)> <!ATTLIST article id ID #IMPLIED> <!ELEMENT url (#PCDATA)> <!ELEMENT headline_text (#PCDATA)> <!ELEMENT source (#PCDATA)> <!ELEMENT media_type (#PCDATA)> <!ELEMENT cluster (#PCDATA)> <!ELEMENT tagline (#PCDATA)> <!ELEMENT document_url (#PCDATA)> <!ELEMENT harvest_time (#PCDATA)> <!ELEMENT access_registration (#PCDATA)> <!ELEMENT access_status (#PCDATA)>

Сервлет, который используется в рассматриваемом в этой главе приложении, включает в себя класс NetNewsSuper. Этот класс запускает поток Thread, который создает объект XMLgrabber для загрузки файла с наиболее свежими заголовками новостей, а также текущий файл DTD. В листинге 9.3 показано начало этого класса, в том числе его конструктор. Заметим, что конструктор снабжен URL- адресом искомого ресурса, а также содержит путь и имя файла, который будет использоваться для локальной копии.

Листинг 9.3. Начало класса XMLgrabber (XMLgrabber.java)

package com.XmlEcomBook.Chap09;

import java.net.* ; import java.io.* ; import java.util.*;

public class XMLgrabber { String source ; // complete URL to run std query // example "http://www.moreover.com/cgi-local/ page?wbrogden@bga.com+xml"; String saveDir ; // for both temp and final xml file String tfnxml ; // temp file name - see createTempXmlWriter String tfndtd ; // temp file name for dtd String saveName ; // for xml String dtdURL ; // complete DTD url from <!DOCTYPE line String dtdFname ; // for dtd

PrintWriter pw ; URL theURL ; Thread queryT ;

// all files from a given source will go to dest directory XMLgrabber( String src, String dest, String fname ){ source = src ; saveDir = dest ; saveName = fname ; // System.out.println("XMLgrabber initialized for " + src ); }




Содержание  Назад  Вперед