Bonjour,

Pour me faciliter la vie, j'ai besoin de génerer un PDF en Java. Je voudrais le faire (avec la librairie iText, à partir d'un document XHTML). Je me suis dit que comme le XHTML n'est qu'une sorte de XML je pourrais parser mon XML et donc génerer le PDF. Mais non le XHTML comprend un doctype. Et donc si je fais un getRootElement() du Document JDOM correspondant à mon fichier HTML, j'ai une erreur (java.net.UnknownHostException), j'avoue humblemnt que je comprend qu'il y ai une exception mais que je ne comprend pas pourquoi cette exception. Je voudrais si possible savoir comment mettre le pointeur à partir du body, parce que les balises meta et tout le reste ne m'interesse pas. Voici ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
package com.datalion.website.parser;
 
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
 
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
 
 
public class XHTMLParser
{
    private SAXBuilder sxb;
    private String path;
    private Document doc;
    private Element root;
    public XHTMLParser()
    {
        this.sxb = new SAXBuilder();
    }
    public void parse(String URL)
    {
 
        this.path=URL;
        try
        {
            this.doc = sxb.build(new FileInputStream(this.path)); // <- java.net.UnknownHostException:
            this.root = doc.getRootElement();
        }
        catch(JDOMException e1)
        {
            e1.printStackTrace();
        }
        catch(IOException e2)
        {
            e2.printStackTrace();
        }
    }
    public Object getElementById(String id)
    {
        return searchObject(id);
    }
    private Object searchObject(String uniqueIdentifier)
    {
        List level = this.root.getChildren();
        for(int i = level.size() ; i > 0 ; i --)
        {
            Element current = (Element) level.get(i);
            if(current.getAttributeValue("id").equals(uniqueIdentifier))
            {
                return current.getAttributeValue("id").equals(uniqueIdentifier);
            }
        }
        return searchObject(uniqueIdentifier);
    }
    public Object root()
    {
        return this.root;
    }
}
Pourriez vous m'aidez ?