J'ai la ligne suivante dans un document XMLattribut XML de lecture à partir d'une ligne d'instruction de traitement
<?ish ishref="GUID-XXXXXXXXXXXXXXXXXXXX" version="1" lang="ae" srclng="en"?>
et que vous souhaitez lire (et modifier) l'attribut lang. Je l'ai essayé ce qui suit:
newXMLDoc.Load(XMLfile);
instruction = newXMLDoc.SelectSingleNode("/processing-instruction('ish')")
as XmlProcessingInstruction;
instruction
retourné un objet valide avec le innerText égal à la ligne «il est », mais je ne sais pas comment accéder aux attributs (essayé de diverses manières, mais tous return null)
Comment accéder aux attributs de instruction
(ou y a-t-il une autre façon d'améliorer l'accès)?
J'ai essayé XPath comme "/ ish @ lang" et instruction.Attributes
mais ceux-ci retournent juste NULL.
je préférerais une solution non LINQ, j'utilise 4.5 .NET
J'ai le pressentiment qu'une instruction de traitement ne fait pas - à savoir n'est pas définie à - avoir des attributs. Autrement dit, tout texte libre est autorisé entre les marques ' ... ?>', et ce n'est qu'une coïncidence que les gens placent habituellement quelque chose qui ressemble à des attributs. – millimoose
En ce qui concerne tout analyseur conforme, le contenu d'un PI est juste une chaîne, et si vous voulez analyser les attributs, vous devez le faire vous-même. – millimoose
Si vous voulez utiliser Saxon comme moteur XPath, alors il a une fonction d'extension 'saxon: getPseudoAttribute()' conçue pour faire ce travail. –