c# & xml

c# & xml - C#/.NET managed - Programmation

Marsh Posté le 04-05-2004 à 12:01:40    

Bonjour.
est-ce que quelqu'un sait comment on peut récuperer une valeur d'une propriété xml.
exemple j'aimerai recuperer la valeur opaquelocktoken:6858C896-AA7F-4A4E-99FA-39AC25A1E7F9:214748364853 qui se trouve dans la balise locktoken.
 
Voila mon code  c# mais ca marche pas sniff
StringReader srLecture = new StringReader(MonXML);
XmlTextReader xtrLecture = new XmlTextReader(srLecture);
xtrLecture.ReadElementString("locktoken" )
 
Voila mon xml
  <?xml version="1.0" ?>  
- <a:multistatus xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" xmlns:c="xml:" xmlns:a="DAV:">
- <a:response>
  <a:href>http://localhost/WebDAV/hello.txt</a:href>  
- <a:propstat>
  <a:status>HTTP/1.1 200 OK</a:status>  
- <a:prop>
  <a:getcontentlength b:dt="int">0</a:getcontentlength>  
  <a:creationdate b:dt="dateTime.tz">2004-05-03T13:42:34.380Z</a:creationdate>  
  <a:displayname>hello.txt</a:displayname>  
  <a:getetag>"ecfe417d1431c41:5e4d"</a:getetag>  
  <a:getlastmodified b:dt="dateTime.rfc1123">Mon, 03 May 2004 13:42:34 GMT</a:getlastmodified>  
  <a:resourcetype />  
- <a:lockdiscovery>
- <a:activelock>
- <a:locktype>
  <a:write />  
  </a:locktype>
- <a:lockscope>
  <a:exclusive />  
  </a:lockscope>
- <D:owner xmlns:D="DAV:">
  <D:href>http://localhost/WebDAV/hello.txt</D:href>  
  </D:owner>
- <a:locktoken>
  <a:href>opaquelocktoken:6858C896-AA7F-4A4E-99FA-39AC25A1E7F9:214748364853</a:href>  
  </a:locktoken>
  <a:depth>0</a:depth>  
  <a:timeout>Second-180</a:timeout>  
  </a:activelock>
  </a:lockdiscovery>
- <a:supportedlock>
- <a:lockentry>
  <a:write />  
  <a:shared />  
  </a:lockentry>
- <a:lockentry>
  <a:write />  
  <a:exclusive />  
  </a:lockentry>
  </a:supportedlock>
  <a:ishidden b:dt="boolean">0</a:ishidden>  
  <a:iscollection b:dt="boolean">0</a:iscollection>  
  <a:getcontenttype />  
  </a:prop>
  </a:propstat>
  </a:response>
  </a:multistatus>
 
 
merci d'avance

Reply

Marsh Posté le 04-05-2004 à 12:01:40   

Reply

Marsh Posté le 04-05-2004 à 13:59:29    

Code :
  1. using System.Xml;


 

Code :
  1. XmlTextReader reader ;
  2. reader = new XmlTextReader("fic.xml" );
  3. while(reader.Read())
  4. {
  5.         // reader.Name() ;
  6.          }


Reply

Marsh Posté le 04-05-2004 à 14:29:25    

ca marche pas c'est pas un fichier xml que j'ai.J'ai un string contenant le xml et un MSXML2.XMLHTTP30

Reply

Marsh Posté le 04-05-2004 à 14:30:49    

si tu le mets dans un String c'est plus compliqué... utilise les objets XML c'est fait pour ça, là tu traites le fichier XML comme n'importe quel fichier plat.

Reply

Marsh Posté le 04-05-2004 à 14:38:55    

je ne recupere pas ce xml d'un fichier. En fait je lance un style de requete et je recupere du XML dans un objet Xml (forcement) et apres je le met en string. Donc j'ai pas de fichier  :-( Et j'arrive pas a récuperer cette valeur de ......

Reply

Marsh Posté le 04-05-2004 à 21:47:36    

je crois que tu peux recréer un objet XML a partir d'une string (streamreader, xmlwriter, toossa :o )


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 05-05-2004 à 08:36:31    

ok thx je vais essayer tout de suite

Reply

Marsh Posté le 05-05-2004 à 14:07:55    

bon j'ai finalement trouver un truc je le met sur le forum pour si quelqu'un en a besion un jour.
 
StringReader srLecture = new StringReader(monXMLenString);
XmlTextReader xtrLecture = new XmlTextReader(srLecture);
string attribut="";
//on se positionne au début
xtrLecture.MoveToFirstAttribute();
bool b;    
string noeud="";
//recherche du noeud où se trouve la clé
while (noeud!="a:locktoken" && xtrLecture.EOF==false)
{
 b=xtrLecture.Read() ;  
 noeud=xtrLecture.Name;  
}
//recherche de l'attribut où se trouve la clé
b=xtrLecture.MoveToFirstAttribute();  
while(attribut!="a:href" && xtrLecture.EOF==false)
{
 b=xtrLecture.Read();  
 attribut=xtrLecture.Name;  
}
string cle;
//si on ne trouve pas la clé alors  
if (xtrLecture.EOF==true)
{
      cle="";
}
else
{    
     cle=xtrLecture.ReadElementString();
}

Reply

Sujets relatifs:

Leave a Replay

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