/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Læsning a entity i dtd
Fra : Henrik Lynggaard


Dato : 29-04-01 13:13

Hejsa

Jeg har brug for at læse Entity'erne fra en DTD der ser ud som denne



<!--
lang kommanter klippet væk

-->

<!-- hopefully this will become view zoom, not just text zoom -->
<!ENTITY askViewZoom.title "Text Zoom">
<!ENTITY selectZoom.label "Select text zoom (&#37;):">

Jeg bruger JAXP og dens DOM klasser, men følgende kode giver problemer

DocumentBuilder docBuilder =
DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document xmlDoc = docBuilder.parse(new File(FileName));

DocumentType docType = xmlDoc.getDoctype();

NamedNodeMap nodeMap = docType.getEntities();

Jeg får en exception der siger min XML fil skal være well-formed.

Hvad gør jeg galt ?

mvh
henrik


 
 
Peter Lind (30-04-2001)
Kommentar
Fra : Peter Lind


Dato : 30-04-01 13:01


"Henrik Lynggaard" <lynggaard@netscape.net> wrote:
> Jeg har brug for at læse Entity'erne fra en DTD [...]
>
> Jeg bruger JAXP og dens DOM klasser, men følgende kode giver problemer
>
> DocumentBuilder docBuilder =
> DocumentBuilderFactory.newInstance().newDocumentBuilder();
>
> Document xmlDoc = docBuilder.parse(new File(FileName));
[...]
> Jeg får en exception der siger min XML fil skal være well-formed.

Jeg kan næsten gætte at din exception optræder i docBuilder.parse() -linjen.

Der er simpelthen noget galt med din XML-fil, du kan prøve at åbne den i
Internet Explorer (5 eller nyere) og se om den vil vise XML-filen.
Hvis din fil ikke er well-formed, er det fordi der f.eks er to elementer der
krydser hinanden ( <element> <andet> </element> </andet> ) eller fordi et
element slet ikke bliver afsluttet.

Du kan også prøve at catche en SAXParseException (Før du catcher
SAXException) og benytte dens metoder ( getLineNumber() og
getColumnNumber() ) til at se præcis hvor det går galt.

Jeg kan ikke lige umiddelbart se om der skulle være noget galt med din DTD -
det ved jeg alt for lidt om...

mvh
Peter Lind



Henrik Lynggaard (30-04-2001)
Kommentar
Fra : Henrik Lynggaard


Dato : 30-04-01 21:24

Peter Lind wrote:

Document xmlDoc = docBuilder.parse(new File(FileName));
>>
> [...]
>
>>Jeg får en exception der siger min XML fil skal være well-formed.
>>
>
> Jeg kan næsten gætte at din exception optræder i docBuilder.parse() -linjen.
>
> Der er simpelthen noget galt med din XML-fil, du kan prøve at åbne den i
> Internet Explorer (5 eller nyere) og se om den vil vise XML-filen.
> Hvis din fil ikke er well-formed, er det fordi der f.eks er to elementer der
> krydser hinanden ( <element> <andet> </element> </andet> ) eller fordi et
> element slet ikke bliver afsluttet.


Problemet er bare at jeg ingen xml fil har, kun DTD'en.

DTD'en er well-formed
mvh
henrik





Thorbjørn Ravn Ander~ (30-04-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 30-04-01 16:26

Henrik Lynggaard wrote:
>
> Hejsa
>
> Jeg har brug for at læse Entity'erne fra en DTD der ser ud som denne

Du kan formentlig ikke nøjes med at læse DTD'en, men skal læse den som
del af et XML-dokument.

Det letteste, hvis du har skriveadgang til DTD'en, er at lave et tomt
rod-tag i bunden. Rodtagget er ordet lige efter <!DOCTYPE, og hvis der
står <!DOCTYPE html, skal du afslutte dit dokument med

<html/>.


--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
http://bigfoot.com/~thunderbear

Henrik Lynggaard (30-04-2001)
Kommentar
Fra : Henrik Lynggaard


Dato : 30-04-01 21:25

Thorbjørn Ravn Andersen wrote:

> Henrik Lynggaard wrote:
>
>>Hejsa
>>
>>Jeg har brug for at læse Entity'erne fra en DTD der ser ud som denne
>>
>
> Du kan formentlig ikke nøjes med at læse DTD'en, men skal læse den som
> del af et XML-dokument.


Se det er jo det jeg ønsker Er der ingen standard metode i DOM/SAX
til det ???

Lige nu bruger jeg Oracle's Parser, og den giver (som en udvidelse)
mulighed for at læse DTD'en alene.

mvh
Henrik





Thorbjørn Ravn Ander~ (30-04-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 30-04-01 21:45

Henrik Lynggaard wrote:

> Se det er jo det jeg ønsker Er der ingen standard metode i DOM/SAX
> til det ???

Ikke så vidt jeg ved. Det er afhængigt af implementationen.

>
> Lige nu bruger jeg Oracle's Parser, og den giver (som en udvidelse)
> mulighed for at læse DTD'en alene.

Jeg har tidligere konstateret nogen grumme Unicodefejl i samme parser,
som - kombineret med den manglende kildetekst - gjorde at jeg fandt en
anden parser.

Hvad er det du skal?

--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
http://bigfoot.com/~thunderbear

Henrik Lynggaard (01-05-2001)
Kommentar
Fra : Henrik Lynggaard


Dato : 01-05-01 21:04

Thorbjørn Ravn Andersen wrote:

> Henrik Lynggaard wrote:
>
>
>>Se det er jo det jeg ønsker Er der ingen standard metode i DOM/SAX
>>til det ???
>>
>
> Ikke så vidt jeg ved. Det er afhængigt af implementationen.
>
>
>>Lige nu bruger jeg Oracle's Parser, og den giver (som en udvidelse)
>>mulighed for at læse DTD'en alene.
>>
>
> Jeg har tidligere konstateret nogen grumme Unicodefejl i samme parser,
> som - kombineret med den manglende kildetekst - gjorde at jeg fandt en
> anden parser.
>
> Hvad er det du skal?

Jeg har 1 eller Flere DTD'er (unden XML'er) og jeg skal lave en liste
over de entifies som er i den / de DTD'er.


Thorbjørn Ravn Ander~ (01-05-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 01-05-01 21:43

Henrik Lynggaard wrote:

> Jeg har 1 eller Flere DTD'er (unden XML'er) og jeg skal lave en liste
> over de entifies som er i den / de DTD'er.

Hvor avanceret er disse DTD'er og hvor avanceret er kravene? Skal du
gøre det igen?

Kan du klare dig ved blot at have noget som kigger efter strenge som
starter med "<!ENTITY" og så kører linien ud? I så fald var et
tekstmasseringsværktøj som Perl måske noget?

Bare hit med nogen oplysninger Forestil dig du skal forklare din
mor hvad det egentlig er du går og laver.

--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
http://bigfoot.com/~thunderbear

Henrik Lynggaard (02-05-2001)
Kommentar
Fra : Henrik Lynggaard


Dato : 02-05-01 21:33

Thorbjørn Ravn Andersen wrote:

> Henrik Lynggaard wrote:
>
>
>>Jeg har 1 eller Flere DTD'er (unden XML'er) og jeg skal lave en liste
>>over de entifies som er i den / de DTD'er.
>>
>
> Hvor avanceret er disse DTD'er og hvor avanceret er kravene? Skal du
> gøre det igen?
>
> Kan du klare dig ved blot at have noget som kigger efter strenge som
> starter med "<!ENTITY" og så kører linien ud? I så fald var et
> tekstmasseringsværktøj som Perl måske noget?
>
> Bare hit med nogen oplysninger Forestil dig du skal forklare din
> mor hvad det egentlig er du går og laver.

okay.

Jeg tager DTD filerne fra Mozilla's Chrome (brugergrænse fladen),De DTD
er super simple.

nemlig formen:

<!ENTITY nøgle "værdi">
<!ENTITY nøgle2 "værdi2">

Dem skal jeg liste i mit JavaProgram.

Jeg har ført kør med at manuelt lede efter texst strenge, men det endte
galt p.g.a. bl.a. tegnsæt. Så nu vil jeg bruge en rigtig XML parser til
jobbet. Især fordi andre dele af programmet også benytter XML parseren
til andre formål.






Thorbjørn Ravn Ander~ (02-05-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 02-05-01 22:03

Henrik Lynggaard wrote:
>
> Thorbjørn Ravn Andersen wrote:
>
> > Henrik Lynggaard wrote:
> >
> >
> >>Jeg har 1 eller Flere DTD'er (unden XML'er) og jeg skal lave en liste
> >>over de entifies som er i den / de DTD'er.
> >>
> >
> > Hvor avanceret er disse DTD'er og hvor avanceret er kravene? Skal du
> > gøre det igen?
> >
> > Kan du klare dig ved blot at have noget som kigger efter strenge som
> > starter med "<!ENTITY" og så kører linien ud? I så fald var et
> > tekstmasseringsværktøj som Perl måske noget?
> >
> > Bare hit med nogen oplysninger Forestil dig du skal forklare din
> > mor hvad det egentlig er du går og laver.
>
> okay.
>
> Jeg tager DTD filerne fra Mozilla's Chrome (brugergrænse fladen),De DTD
> er super simple.
>
> nemlig formen:
>
> <!ENTITY nøgle "værdi">
> <!ENTITY nøgle2 "værdi2">
>
> Dem skal jeg liste i mit JavaProgram.
>
> Jeg har ført kør med at manuelt lede efter texst strenge, men det endte
> galt p.g.a. bl.a. tegnsæt. Så nu vil jeg bruge en rigtig XML parser til
> jobbet. Især fordi andre dele af programmet også benytter XML parseren
> til andre formål.

Ok, til dét formål skal du finde en XML-parser som giver dig mulighed
for at se den indlæste DTD. Jeg kender ikke nogen men de skal jo nok
findes.

Alternativt kunne du rode med at åbne din fil med et givent tegnsæt
(UTF-8?) og så bare læse derudaf,

Hvad skal du bruge det til?
--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
http://bigfoot.com/~thunderbear

Henrik Lynggaard (03-05-2001)
Kommentar
Fra : Henrik Lynggaard


Dato : 03-05-01 20:18

Thorbjørn Ravn Andersen wrote:

> Henrik Lynggaard wrote:
>
>>Thorbjørn Ravn Andersen wrote:
>>
>>
>>>Henrik Lynggaard wrote:
>>>
>>>
>>>
>>>>Jeg har 1 eller Flere DTD'er (unden XML'er) og jeg skal lave en liste
>>>>over de entifies som er i den / de DTD'er.
>>>>
>>>>
>>>Hvor avanceret er disse DTD'er og hvor avanceret er kravene? Skal du
>>>gøre det igen?
>>>
>>>Kan du klare dig ved blot at have noget som kigger efter strenge som
>>>starter med "<!ENTITY" og så kører linien ud? I så fald var et
>>>tekstmasseringsværktøj som Perl måske noget?
>>>
>>>Bare hit med nogen oplysninger Forestil dig du skal forklare din
>>>mor hvad det egentlig er du går og laver.
>>>
>>okay.
>>
>>Jeg tager DTD filerne fra Mozilla's Chrome (brugergrænse fladen),De DTD
>>er super simple.
>>
>>nemlig formen:
>>
>><!ENTITY nøgle "værdi">
>><!ENTITY nøgle2 "værdi2">
>>
>>Dem skal jeg liste i mit JavaProgram.
>>
>>Jeg har ført kør med at manuelt lede efter texst strenge, men det endte
>>galt p.g.a. bl.a. tegnsæt. Så nu vil jeg bruge en rigtig XML parser til
>>jobbet. Især fordi andre dele af programmet også benytter XML parseren
>>til andre formål.
>>
>
> Ok, til dét formål skal du finde en XML-parser som giver dig mulighed
> for at se den indlæste DTD. Jeg kender ikke nogen men de skal jo nok
> findes.
>
> Alternativt kunne du rode med at åbne din fil med et givent tegnsæt
> (UTF-8?) og så bare læse derudaf,
>
> Hvad skal du bruge det til?

MozillaTranslator 5


Thorbjørn Ravn Ander~ (04-05-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 04-05-01 12:43

Henrik Lynggaard wrote:

> > Hvad skal du bruge det til?
>
> MozillaTranslator 5

Hvis problemet _kun_ er UTF-8, så åben filen med UTF8-encoding og læs
lystigt.

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste