Excusez-moi pour cette bête question, mais comment peut-on faire pour ajouter
le contenu (contenant une arborescence complexe) d'un XmlReader dans un node
?
A l'heure actuelle, j'ai :
Code:
XmlElement nodeToAdd = node.OwnerDocument.CreateElement("queue");
SqlConnection conn = new SqlConnection(connectionString);
Mes avis que la méthode Load existe dans un XmlDocument, mais pas dans un XmlNode...
ok, chui un peu speed.
un new XmlDocument, tu le load avec le reader, ensuite, tu Clone le node, et tu l'inseres dans ton flow. (un document n'accepte pas de noeud qui a pour owner un autre document).
mais c'est encore un peu à ch....
tu as une methode ReadNode dans XmlDocument qui te fabrique un Node à partir du XmlReader. ça c'est mieux
XmlFragment, késako ?
le XmlFragment, en fait, c'est une suite de XmlNode, detachés d'un document. mais bon, oublions ça. vu que le Reader est presumé contenir un seul Node...
"Biztalk" <Biztalk@discussions.microsoft.com> wrote in message
news:B1829793-8C1D-4775-AEF1-38CA7EF91CD1@microsoft.com...
Mes avis que la méthode Load existe dans un XmlDocument, mais pas dans un
XmlNode...
ok, chui un peu speed.
un new XmlDocument, tu le load avec le reader, ensuite, tu Clone le node, et
tu l'inseres dans ton flow.
(un document n'accepte pas de noeud qui a pour owner un autre document).
mais c'est encore un peu à ch....
tu as une methode ReadNode dans XmlDocument qui te fabrique un Node à partir
du XmlReader.
ça c'est mieux
XmlFragment, késako ?
le XmlFragment, en fait, c'est une suite de XmlNode, detachés d'un document.
mais bon, oublions ça. vu que le Reader est presumé contenir un seul Node...
Mes avis que la méthode Load existe dans un XmlDocument, mais pas dans un XmlNode...
ok, chui un peu speed.
un new XmlDocument, tu le load avec le reader, ensuite, tu Clone le node, et tu l'inseres dans ton flow. (un document n'accepte pas de noeud qui a pour owner un autre document).
mais c'est encore un peu à ch....
tu as une methode ReadNode dans XmlDocument qui te fabrique un Node à partir du XmlReader. ça c'est mieux
XmlFragment, késako ?
le XmlFragment, en fait, c'est une suite de XmlNode, detachés d'un document. mais bon, oublions ça. vu que le Reader est presumé contenir un seul Node...
Biztalk
oui mais non, ce n'est pas si simple...
Ce simple code ne fonctionne pas :
SqlConnection conn = new SqlConnection(connectionString);
Sur le doc.Load(xreader), j'ai l'erreur suivante : Ce document a déjà un noeud DocumentElement
Ce reader semble ne pas réagir comme les autres!
Ambassadeur Kosh
> oui mais non, ce n'est pas si simple...
...
conn.Close();
bon, ça faut pas faire.
Sur le doc.Load(xreader), j'ai l'erreur suivante : Ce document a déjà un noeud DocumentElement
si ton texte contient "<elt>blabla</elt><elt>fdsgqfgd<elt>", y'a deux elements. et un document a un seul element à la racine. vu ? si j'en crois mon pif, XmlDocument.ReadNode devrait te fourguer "<elt>blabla</elt>", et laisser "<elt>fdsgqfgd<elt>" dans le reader.
c'est pour ça que je te parlais de XmlDocumentFragment. dans un XmlDocumentFragment, il n'y a pas de contrainte qui disent Processing Instructions, Commentaires, RootElement unique, Commentaires. c'est une simple suite de noeuds.
donc, en clair, ton code ça doit etre à peu pres ça.
XmlDocument document = new XmlDocument(); XmlReader reader;
while(!reader.EOF) { XmlNode node = document.ReadNode(reader) ; // insere ton noeud dans le document, fait comme tu veux... }
reader.Close();
ça donne quoi ça ? peut tu donner ce que contient le XmlReader (le ou les InnerText). ce qui est important, c'est le haut de l'arbre, pas les noeuds au 587eme niveau d'imbrication.
Ce reader semble ne pas réagir comme les autres!
ça me parait peu probable. quel et le type de ce XmlReader ?
> oui mais non, ce n'est pas si simple...
...
conn.Close();
bon, ça faut pas faire.
Sur le doc.Load(xreader), j'ai l'erreur suivante : Ce document a déjà un
noeud DocumentElement
si ton texte contient "<elt>blabla</elt><elt>fdsgqfgd<elt>", y'a deux
elements. et un document a un seul element à la racine. vu ?
si j'en crois mon pif, XmlDocument.ReadNode devrait te fourguer
"<elt>blabla</elt>", et laisser "<elt>fdsgqfgd<elt>" dans le reader.
c'est pour ça que je te parlais de XmlDocumentFragment. dans un
XmlDocumentFragment, il n'y a pas de contrainte qui disent Processing
Instructions, Commentaires, RootElement unique, Commentaires.
c'est une simple suite de noeuds.
donc, en clair, ton code ça doit etre à peu pres ça.
XmlDocument document = new XmlDocument();
XmlReader reader;
while(!reader.EOF)
{
XmlNode node = document.ReadNode(reader) ;
// insere ton noeud dans le document, fait comme tu veux...
}
reader.Close();
ça donne quoi ça ?
peut tu donner ce que contient le XmlReader (le ou les InnerText). ce qui
est important, c'est le haut de l'arbre, pas les noeuds au 587eme niveau
d'imbrication.
Ce reader semble ne pas réagir comme les autres!
ça me parait peu probable.
quel et le type de ce XmlReader ?
Sur le doc.Load(xreader), j'ai l'erreur suivante : Ce document a déjà un noeud DocumentElement
si ton texte contient "<elt>blabla</elt><elt>fdsgqfgd<elt>", y'a deux elements. et un document a un seul element à la racine. vu ? si j'en crois mon pif, XmlDocument.ReadNode devrait te fourguer "<elt>blabla</elt>", et laisser "<elt>fdsgqfgd<elt>" dans le reader.
c'est pour ça que je te parlais de XmlDocumentFragment. dans un XmlDocumentFragment, il n'y a pas de contrainte qui disent Processing Instructions, Commentaires, RootElement unique, Commentaires. c'est une simple suite de noeuds.
donc, en clair, ton code ça doit etre à peu pres ça.
XmlDocument document = new XmlDocument(); XmlReader reader;
while(!reader.EOF) { XmlNode node = document.ReadNode(reader) ; // insere ton noeud dans le document, fait comme tu veux... }
reader.Close();
ça donne quoi ça ? peut tu donner ce que contient le XmlReader (le ou les InnerText). ce qui est important, c'est le haut de l'arbre, pas les noeuds au 587eme niveau d'imbrication.
Ce reader semble ne pas réagir comme les autres!
ça me parait peu probable. quel et le type de ce XmlReader ?