XmlDocument XmlElement

XmlDocument XmlElement - C#/.NET managed - Programmation

Marsh Posté le 27-05-2010 à 19:31:41    

Bonjour, j'ai une petite question:

 

j'ai un exercice de csharp a faire.
En gros la methode renvoit un XmlElement
on calcule dedans le contenu de cet element (appelons le liste-produit) en selectionnant des elements dans un autre xml.
Ensuite on doit renvoyer cet element (cette liste de produits donc) avec la declaration xml et la declaration du xslt qui va avec.

 

Le calcul de la liste d'elements et l'ajout a l'element de retour n'est pas un probleme

 

Par contre je n'arrive pas ajouter une declaration xml et la declaration du xslt dans un xmlelement, seulement dans un xmldocument.

 

Le prof m'a explicitement dit qu'il fallait que ce soit un xmlelement et qu'il y ait les declarations.

 

C'est possible ca?
Comment puis-je les rajouter dans mon xmlelement?
Au pire, y a t il moyen de convertir un xmldoc en xmlelem (je doute la) ?

 

Merci d'avance pour l'aide
------------------------------
Exemple

 

il faudrait que le contenu de mon xmlelement ressemble a cela

 

<?xml version="1.0" encoding="UTF-8"?>     <!-- je n'arrive pas a le rajouter -->
<?xml-stylesheet type="text/xsl" href="Products.xsl"?>     <!-- je n'arrive pas a le rajouter -->
<products> <!-- j'ai deja toute la suite -->
<product>
prod1
</product>
<product>
prod2
</product>
<product>
prod3
</product>
</products>


Message édité par Toinou87 le 27-05-2010 à 19:39:19

---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 27-05-2010 à 19:31:41   

Reply

Marsh Posté le 28-05-2010 à 11:26:17    

Au risque de passer pour un con, je trouve affligeant qu'aujourd'hui en C# dans les écoles on enseigne encore XmlDocument.

 

Ceci étant dit, je ne pense pas qu'il soit possible d'ajouter ce genre d'information sur un Element,mais je me trompe peut être.
Pour un document il faut passer par un truc du genre :
XmlProcessingInstruction pi =
mondoc.CreateProcessingInstruction("xml-stylesheet", "type="text/css" href="Products.xsl" );
mondoc.InsertBefore(pi, mondoc.DocumentElement);
(je te laisse rajouter les \" que je n'ai pas mis).

 

Pour un XmlElement pas la moindre idée, tu as cherché un peu sur le net ?


Message édité par TotalRecall le 28-05-2010 à 11:27:27

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 28-05-2010 à 13:04:49    

oui justement et ce que j'ai cherché m'a confirmé que c'etait pas possible. Apres 4 5 mails au prof, il a finalement fini par dire que y a aviat pas besoin des deux lignes dans le resultat final.

 

Je reviens sur le resultat de mes recherches pour que ce soit claire.
En C# y a la classe XmlNode qui regroupe tous les type de noeud dans un xml (declarations, processings, elements en font partie)
La classe XmlElement permet seulment de construire des noeuds de type element (des tags xml en gros).
La classe XmlDocument implemente la description d'un fichier xml donnée par le w3c (d'abord une declarations, puis du processing,doctypes..., et enfin un element root).

 

En gros le prof voulait qu'on face un XmlDocument (donc avec tout) puis qu'on invoke la propriété: XmlDocument.DocumentElement, qui renvoit l'element root (type XmlElement). Et c'est ca qu'on doit renvoyé

 

C'est un peu con parce que pour faire cet XmlDocument fallait qu'on construise nous meme le root element. Donc on l'a deja dans une variable a ce moment la ^^.

 

Sinon merci pour la ligne mais je l'avais deja pour le Document ^^
Bref, merci pour l'aide, au final, le prof a chié dans la colle.


Message édité par Toinou87 le 28-05-2010 à 13:06:03

---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 28-05-2010 à 14:38:02    

M'en doutais...
Tu suis quel cursus par curiosité ? Si tu ne veux pas en parler ici (pour éviter le dénigrement gratuit) je veux bien savoir en privé :).


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed