Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2355 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] remplacer la valeur d'un attibut dans un doc

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] remplacer la valeur d'un attibut dans un doc

n°1325626
the big be​n
Posté le 15-03-2006 à 09:29:55  profilanswer
 

Bonjour,
J'ai un document XML (pour etre précis une vue de InfoPath en XSL mais le résultat est le même) dans lequel j'ai des balises  

Code :
  1. <img src="667A3618.gif"/>

Je chargé mon fichier avec qq chose du genre

Code :
  1. XmlDocument myXmlDocument = new XmlDocument();
  2. myXmlDocument.LoadXml(strXHTML);

Et j'aimerais ajouter un répertoire avant la source de mon image donc que ma balise devienne

Code :
  1. <img src="mon_rep/667A3618.gif"/>

J'ai donc essayé

Code :
  1. String strStyle = null;
  2. XmlNodeList styleList = myXmlDocument.SelectNodes("html/head/style" );
  3. foreach(XmlNode node in styleList) {
  4.    node.Attributes["controlStyle"] = "mon_rep" + node.Attributes["controlStyle"];
  5. }


Mais hélas node est une propriété en lecture seule apparemment comment faire alors???
 
D'avance merci...
 
Ben


Message édité par the big ben le 22-03-2006 à 14:28:52
mood
Publicité
Posté le 15-03-2006 à 09:29:55  profilanswer
 

n°1326590
the big be​n
Posté le 16-03-2006 à 12:10:30  profilanswer
 

up

n°1328816
the big be​n
Posté le 20-03-2006 à 14:24:00  profilanswer
 

vraiment personne??? snif

n°1329752
moi23372
Posté le 21-03-2006 à 19:49:25  profilanswer
 

ne serait il pas possible de charger ton xml dans un dataset grâce à la méthode "readxml" du dataset. Faire la modif dans le dataset et de réécrire l'xml grâce à la méthode "writexml" du dataset. A voir.  
 
sinon pour ton problème, utilise "ReplaceChild" (Replaces the child node oldChild with newChild node). ça pourait faire l'affaire. car un attribut est un noeud dans l'arbre DOM. regarde donc de ce coté la.
 
Apparemment, toutes les propriétés sont read-only dans le XMLNode. Regarde donc de coté la ou éventuellement la propriété Item du node. Peut etre qu'il y a moyen de faire quelque chose avec.
 
Plus d'informations:
http://msdn.microsoft.com/library/ [...] stopic.asp
 
Petite remarque:
XmlNodeList styleList = myXmlDocument.SelectNodes("html/head/style" );
 
Ton document ressemble bien à ça?  
<html>
<head><style><img src="..." /></style></head>
</html>
 
car l'instruction xpath html/head/style n'ira recherché les balises qu'a l'intérieur de style dans head dans html. Donc fait attention à ce que tu fais.  
 


Message édité par moi23372 le 21-03-2006 à 19:53:22
n°1329952
the big be​n
Posté le 22-03-2006 à 09:04:50  profilanswer
 

Le dataset c'est peut etre une bonne idée c'est vrai je vais regarder mais c'est un chtit peu lourd. Sinon le replace node ... je te tient au courrant!
 
Je me suis effectivement trompé pour le html/head/style c'est juste en recopiant le code mais sinon oui c'est ok

n°1330223
the big be​n
Posté le 22-03-2006 à 14:28:37  profilanswer
 

oki en chippotant pas mal et via la fonciton ReplaceChild + récursivité j'ai finnalement réussi!  
 
Un grand merci!

n°1330260
moi23372
Posté le 22-03-2006 à 15:10:44  profilanswer
 

de rien c'est avec plaisir ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] remplacer la valeur d'un attibut dans un doc

 

Sujets relatifs
[RESOLU] Header $_POST[RESOLU] : IF (condition1 OU condition2) ET (condition3) alors...
erreur t_variable (résolu)[RESOLU]une animation flash en arrière plan d'une page html
[RESOLU] Comment faire, pour le sceau de peinture??[RESOLU] Intéraction entre deux objets - Meilleure façon de faire
[RESOLU] ouvrir une pop-up avec un header en php..[Javascript] valeur d'un select sous IE
[RESOLU] _GET ou _POST ???remplacer exitsub pour continuer la sub
Plus de sujets relatifs à : [Résolu] remplacer la valeur d'un attibut dans un doc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR