12
votes

Quelle est l'expression XPath pour sélectionner une instruction de traitement?

J'utilise xsl: fiche de style instruction de traitement dans mon XML. Y a-t-il de toute façon pour sélectionner cette pi avec xpath? Si oui, comment?


0 commentaires

3 Réponses :


9
votes

Utilisez traitement-instruction () Test de nœud.


1 commentaires

Kirill, cette réponse est trop générale - vous ne fournissez pas une expression XPath spécifique qui sélectionne exactement le PI recherché.



9
votes

En général, une instruction de traitement peut être sélectionnée à l'aide du test TRAITEMENT-INSTRUCTION () Test de nœud.

Plus spécifiquement, on peut inclure comme argument le nom (cible) du nœud PI recherché .

Utilisez : xxx

Ceci sélectionne toutes les instructions de traitement avec nom xsl-stylesheet que est défini au niveau mondial (le frère de l'élément supérieur).

Notez que xsl: stylesheet est une cible PI invalide pour un PI. Un colon ':' est utilisé pour délimiter un préfixe d'espace de noms à partir du nom local - toutefois une instruction de traitement cible ne peut pas appartenir à un espace de noms. Selon les Spécification W3C XPath ::

" une instruction de traitement a un nom de traitement élargi: la partie locale est la cible de l'instruction de traitement; l'urion d'espace de noms est null ."

aussi Selon le document W3C: "Feuilles de style associant avec XML Documents 1.0 < / strong> ", la cible de l'IP qui associe une feuille de style à un document XML doit être: " xml-stylesheet " - pas " xsl: la feuille de style " ou < code> "xsl-stylesheet" .

Voici un exemple complet : xxx

Lorsque cette transformation est appliquée à l'encontre du document XML suivant : xxx

L'expression XPath est évaluée et le nœud PI sélectionné est émis : xxx


6 commentaires

Je vois que vous êtes toujours à la hauteur de vos vieilles astuces ... Supprimer et ré-poster une réponse pour rejeter les votes abusifs est tout droit à l'abus: comment les gens décident d'évaluer vos réponses est leur décision, pas la vôtre. S'il vous plaît s'abstenir de le faire à nouveau.


Est-ce que / traitement - instruction ('xml-stylesheet') sélectionne des éléments avec nom xsl-stylesheet ? Ce serait magique! Remarque xml vs xsl .


@Michelduiter, oui, ça fait. Ceci est formellement défini ici (troisième paragraphe du bas): w3.org/tr / XPATH / # NODE-TESTS


@Micheldruiter, non, ça ne le fait pas. Je ne sais pas pourquoi Dimitre croit autrement, mais j'ai testé cela, et cela ne correspond pas.


@MicheldRuier, Flynnn1179 a raison - je n'ai pas vu la différence de noms. Mais vous pouvez facilement faire: traitement-instruction () [nom () = 'xml-stylesheet' ou nom () = 'xsl-stylesheet']


@ Flynn1179, oui, je n'ai pas remarqué que le commentaire demandait de sélectionner un PI avec un autre nom. J'ai répondu avec un autre commentaire en spécifiant une façon de sélectionner à la fois de ces pis.



0
votes

Un chapeau d'instruction de traitement Deux parties Cible et des données avec la syntaxe: xxx pré>

si vous utilisez: p> xxx pré>

il ne sera que Renvoie la partie de données, dans l'exemple de Dimitre Novatchev, il renvoie: P>

type="text/xsl" href="test"


0 commentaires