Ik lees de volgende remote file:
als volgt in:
Het is me uiteraard duidelijk dat ie de html tags als xml ziet en een fout genereert, omdat ik het gehele Txt blok als tekst probeer te lezen.
Ik kan aan het xml bestand dus niks zelf meer veranderen. Ik heb wel oplossingen gevonden, maar die sloegen niet exact op mijn probleem, b.v. deze.
Nu heb ik ook iets gevonden over entity resolvers, maar hier kan ik niet echt over vinden of deze voor mijn probleem bruikbaar zijn. Weet iemand hoe ik dit binnen mijn Java code kan oplossen?
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?xml version="1.0" ?> <data> <veld GgvTypIdt="5" VryVldIdt="106" VldTypIdt="2" VlgNum="9" RepVlgNum="1" AdrPst="0"> <Nam>Bijzonderheden</Nam> <Lbl>Bijzonderheden</Lbl> <LblLay>1</LblLay> <ToeLay>O</ToeLay> <VldLay>O</VldLay> <WrdLay>N</WrdLay> <WrdBld>0</WrdBld> <WrdIta>0</WrdIta> <Txt> <span> <table class="noborder" width="100%"> <tbody> <tr> <td>Secretaris</td> <td>vervangen </td> </tr> <tr> <td> </td> <td> </td> </tr> </tbody> </table> </span> </Txt> </veld> ... </data> |
als volgt in:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| // filename is juist URL url = new URL( filename ); URLConnection conn = url.openConnection( ); conn.setUseCaches( false ); DataInputStream in = new DataInputStream( conn.getInputStream( ) ); DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance( ); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder( ); contentItem = docBuilder.parse( in ); in.close( ); ... Element root = contentItem.getDocumentElement( ); NodeList fieldList = root.getElementsByTagName( "veld" ); for ( int i = 0; i < fieldList.getLength( ); i++ ) { Element fieldNode = (Element)fieldList.item( i ); .... NodeList fieldLabelList = fieldNode.getElementsByTagName( "Lbl" ); Element fieldLabelElement = (Element)fieldLabelList.item( 0 ); NodeList fieldLabelText = fieldLabelElement.getChildNodes( ); NodeList fieldTxtList = fieldNode.getElementsByTagName( "Txt" ); Element fieldTxtElement = (Element)fieldTxtList.item( 0 ); NodeList fieldTxtText = fieldTxtElement.getChildNodes( ); System.out.println( ( (Node)fieldTxtText.item( 0 ) ).getNodeValue( ).trim( ) ) + " = " + ( (Node)fieldTxtText.item( 0 ) ).getNodeValue( ).trim( ) ) ); .... } |
Het is me uiteraard duidelijk dat ie de html tags als xml ziet en een fout genereert, omdat ik het gehele Txt blok als tekst probeer te lezen.
Ik kan aan het xml bestand dus niks zelf meer veranderen. Ik heb wel oplossingen gevonden, maar die sloegen niet exact op mijn probleem, b.v. deze.
Nu heb ik ook iets gevonden over entity resolvers, maar hier kan ik niet echt over vinden of deze voor mijn probleem bruikbaar zijn. Weet iemand hoe ik dit binnen mijn Java code kan oplossen?