Salut,
voici le contexte, je récupère un fichier XML via un WebService de Microsoft (MTPS content Service) à l'aide du soft MsdnMan et ce sous PowerShell (.NET 2.0) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .\msdnman.exe Microsoft.Win32.RegistryKey.OpenRemoteBaseKey -loc fr-fr -language c# -Nologo -XML|Set-content $pwd\OpenremoteBaseKey.xmlEnsuite je filtre le résultat obtenu et essaie de récupérer une partie du fichier XML avec XPath mais je rencontre quelque soucis avec la requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?xml version="1.0" encoding="ibm850"?> <response> <primary> <div class="topic" xmlns:mtps="<a href="http://msdn2.microsoft.com/mtps" target="_blank">http://msdn2.microsoft.com/mtps</a>" xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>"> <div class="majorTitle" xmlns:asp="<a href="http://msdn2.microsoft.com/asp">Biblioth?que" target="_blank">http://msdn2.microsoft.com/asp">Biblioth?que</a> de classes .NET Framework<!----> </div> <div class="title" xmlns:asp="<a href="http://msdn2.microsoft.com/asp">RegistryKey<mtps:LanguageSpecificText" target="_blank">http://msdn2.microsoft.com/asp">Regi...geSpecificText</a> runat="server"> <variation devLang="cs">.</variation><variation devLang="vb">.</variation> <variation devLang="cpp">::</variation><variation devLang="nu">.</variation> </mtps:LanguageSpecificText>OpenRemoteBaseKey, m?thode <!----> </div> <!-- Content type: Devdiv1. Transform: orcas2mtps.xslt. --> <mtps:MemberLink Target="AssetId:T%3aMicrosoft.Win32.RegistryKey" Text="RegistryKey, classe" runat="server" /> <div id="mainSection"> <div id="mainBody"> ...
Dans SketchPath si je me positionne sur le noeud le soft affiche :
J'ai essayé cette syntaxe sur plusieurs outils sans résulat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 response/primary/div/div[3][@id="mainSection"]
Le premier soucis si j'interroge sur le "noeud primaire"
cela fonctionne, sur le suivant aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 response/
mais dés que j'atteint ce niveau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 response/Primary/
aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 response/Primary/div/
Etant débutant sous XPath, il y a qq chose que je n'ai peut être pas compris, en tout cas avec les XSD fournis j'ai un peu de mal.
J'ai consulté qq tuto sur le sujet mais les exemples sont basés sur des fichier XML trés simple.
J'aimerais savoir :
- XPath peut-il avoir un comportement différent selon les outils/plateforme ?
- le fait d'avoir un fichier XML multi-schéma, c'est ce que j'ai cru comprendre pour MTPS, nécessite-t-il une syntaxe particulière.
- la syntaxe suivante est-elle correcte : response/primary/div/div[3][@id="mainSection"] ? Je suis surpris de trouver une notion d'indexation associé à XML.
- et enfin comment procéder pour obtenir le contenu du noeud <div id="mainSection"> ?
En espérant avoir été suffisament clair !
Le fichier joint contient les XSD et le fichier XML cité.
Partager