Hi,
Je voudrais avoir un exemple de code permattant en java avec JDOM de convertir une selection XML avec JDOM en string ( a fin d'inserer cette chaine de caractère dans un fichier xml).
Merci d'avance
Hi,
Je voudrais avoir un exemple de code permattant en java avec JDOM de convertir une selection XML avec JDOM en string ( a fin d'inserer cette chaine de caractère dans un fichier xml).
Merci d'avance
je sais pas si ça fonctionnera sur JDOM, il faudra peut-etre modifier quelque chose mais le principe est là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 StringWriter stringOut = new StringWriter(); TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer trans = transFactory.newTransformer(); trans.transform(new DOMSource(docOut), new StreamResult(stringOut)); String xml = stringOut.toString();
Envoyé par pistache42
bonjour,
je vous remercie de votre message.
Ce n'est pas tout le doc XML (DOMSource) que je voudrais modifier mais seulement un Element complexe selectionné par le code suivant:
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 racine = document.getRootElement(); System.out.println(racine.getName()); Element element1=racine.getChild("Body",nsSOAP); Element element2=element1.getChild("Create"); List list=element2.getChildren("CreateItem"); // On crée un Iterator sur notre liste Iterator i = list.iterator(); while (i.hasNext()) { Element courantElement = (Element) i.next(); //convertir le contenu du courantElement vers String pour l'inserer }
Comme ca ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Element elt = ... String s = new String(); while (i.hasNext()) { Element e = (Element) i.next(); s+="<"+e.getName+">"+e.getText()+"</"+e.getName()+"/>\n"; }
Merci,
Mais je pense que ton code insere seulement un element simple, et moi je cheche à inseré des élements complexes par exemple:
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 <Create itemID="xxxx"> <ResourceID>gup:A120/IMPI</ResourceID> <CreateItem> <Select> <GCL>//HSSIMSData</GCL> </Select> <NewData> <HSSIMSDataKey/> <SCSCFSelection> <MandatoryCapability/> <PreferedSCSCF/> </SCSCFSelection> <Registration> <SCSCFName/> <DiameterClientAddressOfCSCF/> </Registration> <PrivateUserIdentity> <Identity>gup:xxx@xxx.fr/IMPI</Identity> <SubscriptionIdentificationAndNumberingReference>gup:00330000/IMSU</SubscriptionIdentificationAndNumberingReference> <AuthentificationAndCipheringReference>c2</AuthentificationAndCipheringReference> </PrivateUserIdentity> </NewData> </CreateItem> <CreateItem> <Select> <GCL>//AuthenticationAndCiphering</GCL> </Select> <NewData> <AuthenticationAndCipheringKey>c2</AuthenticationAndCipheringKey> <K/> <Algorithm/> <AMF/> <PrivateUserIdentityReference>gup:xxx@xxx.fr/IMSI</PrivateUserIdentityReference> </NewData> </CreateItem> <CreateItem> <Select> <GCL>//SubscriptionIdentificationAndNumbering</GCL> </Select> <NewData> <PublicUserIdentity>gup:0033000000IMSU</PublicUserIdentity> <BarringIndication>True</BarringIndication> <ListOfauthorizedVisitedNetworkIdentifiers> <Id>0033</Id> <Id>00213</Id> <Id>001</Id> </ListOfauthorizedVisitedNetworkIdentifiers> <ServiceRelatedToUnregistredState/> <PrivateUserIdentityReference>gup:xxx@xxxxx.fr/IMSI</PrivateUserIdentityReference> <ServiceProfileReference>Service_Profile_1</ServiceProfileReference> <ImplicitlyRegisteredSetReference>gup:Test@xxxxx.fr/IRS</ImplicitlyRegisteredSetReference> </NewData> </CreateItem> </Create>
Alors dans ce cas, il y a un truc, la récursivité, je te laisse le soin de chercher de ce coté là et de revenir en cas de problème![]()
à ta place j'utiliserais Dom4j
chaque Element possède une fonction asXML() qui te retourne la chaune XML correspondant à ton noeud.
tu trouveras la doc et les jar ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; SAXReader reader = new SAXReader(); Document d = reader.read(new StringReader(FileStringUtility.file2String(filePath)));
http://www.dom4j.org/
Partager