Récupérer le xpath d'une valeur donner dans un document xml

Résolu
elkasmi_ahmed
Messages postés
5
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2006
- 18 avril 2006 à 20:15
elkasmi_ahmed
Messages postés
5
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2006
- 18 avril 2006 à 20:49
salut tout le monde je fais le programme suivant dans lequel je veux récupérer le xpath d'une valeur d'un noeud.
par exemple:


salut


le xpath de salut est : /html/body/p
****************************************
voici mon programme c'est une application console:
using System;
using System.Xml;
using System.Xml.XPath;
using System.Collections;

namespace ParserXML
{
///
/// Description résumée de Class1.
///
class Class1
{
///
/// Point d'entrée principal de l'application.
///
///
private static int k= 0;
private static string path="";//le xpath
private static int prof=0;//le profodeur d'une donner dans l'arbre xml
private static ArrayList tab=new ArrayList();//une liste de Xpath
private static void processXmlFile2()
{
XmlDocument xmlDoc;
try
{
xmlDoc = new XmlDocument();
xmlDoc.Load("google.xml");
XPathNavigator xpathNavigator;
xpathNavigator=xmlDoc.CreateNavigator();
xpathNavigator.MoveToRoot();
GetXmlNodes(xpathNavigator);

}
catch (Exception ex)
{
Console.WriteLine (ex.Message);
}
}
public static void GetXmlNodes (XPathNavigator nav)
{
string str="";
switch (nav.NodeType)
{
case XPathNodeType.Element:
if (nav.Prefix==String.Empty)
{
Console.WriteLine("", nav.LocalName);
path+="/"+nav.LocalName;
prof++;
}
else
Console.Write("", nav.Prefix, nav.LocalName);
Console.WriteLine("\t"+ nav.NamespaceURI);
break;
case XPathNodeType.Text:
Console.WriteLine("\t" + nav.Value);
Console.WriteLine("the path is:"+path);
str=nav.Value+"*"+path;
tab.Add(str+"*"+prof);
break;
}
if (nav.MoveToFirstChild())
{
do
{
GetXmlNodes(nav);
} while ( nav.MoveToNext() );
if(path.Length >0)
{
path=path.Substring(0,path.LastIndexOf("/"));
prof--;
}
nav.MoveToParent();
if (nav.NodeType == XPathNodeType.Element)
Console.WriteLine("", nav.Name);
}
}
private static ArrayList Rechercher(string str)
{
ArrayList l=new ArrayList();
foreach(string m in tab)
{
if(m.StartsWith(str))
{
l.Add(m);
}
}
return l;
}
public static void Main(string[] args)
{
//processXmlFile();
processXmlFile2();
ArrayList s=new ArrayList();
s=Rechercher("wanadoo");
Console.WriteLine("***************");
foreach(string m in s)
{
Console.WriteLine(m);

}

}

}
}

voici mon fichier xml en entrée dont le nom est google.xml
*****************************************



hahooa : ßíãíÇÆíøÉ














[r?sid=10610&url=http://www.ditraco.com ÏíÊÑÇ]



[ÇäÌáíÒíøÉ]
 
ÇáÇãÇÑÇÊ ÇáÚÑÈíøÉ ÇáãÊøÍÏÉ

ÔÑßÉ ÊÕäíÚ æ ÊÌÇÑÉ ãæÇÏ ÇáÊäÙíÝ Ýí ÇáÅãÇÑÇÊ ÇáÚÑÈíÉ ÇáãÊÍÏÉ.




[r?sid =10610&url= http://www.ditraco.com http://www.ditraco.com
]



[r?sid =3705&url= http://www.etancheite.com.tn ÇÊæäÊíÔíÊí ÇáÊøæäÓíøÉ]



[ÝÑäÓíøÉ]
 
ÊæäÓ

ÔÑßÉ ÊæäÓíøÉ áÅäÊÇÌ ÇáÏøåä, ÇáÕãÛ, ÇáØáÇÁ æ ãæÇÏ ÇáÈäÇÁ ÇáÃÎÑì.


[r?sid =3705&url= http://www.etancheite.com.tn http://www.etancheite.com.tn
]



[r?sid =11420&url= http://www.sotulub.com.tn ÇáÔÑßÉ ÇáÊæäÓíÉ áÒíæÊ ÇáÊÔÍíã (ÓæÊæáæÈ)]



[ÝÑäÓíøÉ] [ÇäÌáíÒíøÉ]
 
ÊæäÓ

ÔÑßÉ ãÊÎÕÕÉ Ýí ÌãÚ æ ÊÌÏíÏ ÇáÒíæÊ ÇáãÚÏäíÉ ÇáãÓÊÚãáÉ¡ ÇäÊÇÌ æ ÊÌÇÑÉ ÇáÏåæä¡ ÇÚÇÏÉ ãÑÔÍÇÊ ÇáÒíÊ ÇáãÓÊÚãáÉ æ ÊÍÇáíá ÇáÝíÒíæßíãíÇÁ.


[r?sid =11420&url= http://www.sotulub.com.tn http://www.sotulub.com.tn
]



[r?sid =5953&url= http://www.tinol.com.lb ÇáÔÑßÉ ÇáÚÇáãíøÉ ááÏøåä Êíäæá]



[ÇäÌáíÒíøÉ]
 
áÈäÇä

ÔÑßÉ áÈäÇäíøÉ áÇäÊÇÌ ÇáÏøåä.


[r?sid =5953&url= http://www.tinol.com.lb http://www.tinol.com.lb
]



[r?sid =7090&url= http://www.ndcoman.com ÇáÔÑßÉ ÇáæØäíøÉ ááãäÙøÝÇÊ ÇáÕäÇÚíøÉ]



[ÇäÌáíÒíøÉ]
 
ÓáØäÉ ÚãÇä

ÇäÊÇÌ æ ÊÓæíÞ ãæÇÏ ÇáÊäÙíÝ.


[r?sid =7090&url= http://www.ndcoman.com http://www.ndcoman.com
]



[r?sid =9595&url= http://www.alchemychemicals.com ÇáÔøÇãí ááãæÇÏ ÇáßíãíÇÆíøÉ]



[ÇäÌáíÒíøÉ]
 
ÇáÇãÇÑÇÊ ÇáÚÑÈíøÉ ÇáãÊøÍÏÉ

ããæøä ÇáÔøÑÞ ÇáÃæÓØ, ÅÝÑíÞíÇ æ ÇáÈáÇÏ ÇáãÌÇæÑÉ ÈÇáãæÇÏ ÇáßíãíÇÆíøÉ.


[r?sid =9595&url= http://www.alchemychemicals.com http://www.alchemychemicals.com
]



[r?sid =7860&url= http://www.sabic.com ÇáÔøÑßÉ ÇáÓøÚæÏíøÉ ááÕøäÇÚÇÊ ÇáÃÓÇÓíøÉ (ÓÇÈß )]



[ÇäÌáíÒíøÉ] [ÚÑÈíøÉ]
 
ÇáÚÑÈíøÉ ÇáÓÚæÏíøÉ

ÔÑßÉ ÇÓÊËãÇÑ Ýí ÇáãæÇÑÏ ÇáØÈíÚíøÉ ÇáåíÏÑæßÑÈæäíøÉ, ãäÊÌÇÊ Ýí ãÌÇá ÇáÈÊÑæßíãÇæíÇÊ æÇáÃÓãÏÉ.


[r?sid =7860&url= http://www.sabic.com http://www.sabic.com
]



[r?sid =6242&url= http://www.arabpotash.com ÇáÔøÑßÉ ÇáÚÑÈíøÉ ááÈæÊÇÓ]



[ÇäÌáíÒíøÉ]
 
ÇáÃÑÏä

ÔÑßÉ ÃÑÏäíøÉ ãÎÊÕøÉ Ýí ÕäÇÚÉ æ ÇÓÊÛáÇá ÇáÈæÊÇÓ ãä ÇáÈÍÑ ÇáãíøÊ, ÇáãäÊæÌÇÊ æÇáÃÎÈÇÑ.


[r?sid =6242&url= http://www.arabpotash.com http://www.arabpotash.com
]



[r?sid =3539&url= http://www.siag.org ÇáÔøÑßÉ ÇáßíãíÇÆíøÉ ÓíÇÌ]



[ÇäÌáíÒíøÉ]
 
ãÕÑ

ÔÑßÉ ãÕÑíøÉ áÈíÚ æÕäÇÚÉ ÇáãæÇÏ ÇáßíãíÇÆíøÉ ÇáÎÇÕøÉ ÈÇáäøÓíÌ, ãæÇÏ ÇáÊäÙíÝ, ÇáÏøåä æÇáÕøãÛ.


[r?sid =3539&url= http://www.siag.org http://www.siag.org
]



[r?sid =6595&url= http://www.vapco.net ÇáÔøÑßÉ ÇáãÍÏæÏÉ áÕäÇÚÉ ÇáãäÊÌÇÊ ÇáÒøÑÇÚ]



[ÇäÌáíÒíøÉ]
 
ÇáÃÑÏä

ÔÑßÉ ÃÑÏäíøÉ ÊÕäÚ ÇáãäÊÌÇÊ ÇáÈíØÑíøÉ, ÇáÕíÏáíøÉ æÇáßíãíÇæíøÉ ÇáÝáÇÍíøÉ.


[r?sid =6595&url= http://www.vapco.net http://www.vapco.net
]







1 
[mailto:contact@hahooa.com ÇÊÕá ÈäÇ]
 | [nav_portal.php?ver =ar&pge=press صحافة]




http://www.voila.fr
http://www.wanadoo.fr




ª 2002 wanadoo


















*******************
je sais que c'est trés long mais bon merci pour votre aide.
je veux une solution, la mienne n'a pas encore marché.
cordialement Ahmed.

1 réponse

elkasmi_ahmed
Messages postés
5
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2006

18 avril 2006 à 20:49
une petite remarque mon programme ne traite ne traite pas le cas
ou la balaise est vide càd comme
etc...
merci encore.
3