Pourriez-vous fournir plus de code d'exemple et un document XML d'entrée? De l'information donnée, j'ai écrit un petit exemple de programme qui fonctionne comme prévu. Est-ce que ce qui suit fonctionne pour vous?
Exemple de document:
<?xml version="1.0" encoding="iso-8859-1"?>
<doc>
<test>Företag</test>
<test>Hallå</test>
</doc>
C#
using System;
using System.Xml.XPath;
class Program
{
static void Main(string[] args)
{
XPathDocument xpdoc = new XPathDocument(@"sample.xml");
XPathNavigator nav = xpdoc.CreateNavigator();
XPathNodeIterator iter = nav.Select("//*[text() = 'Företag']");
while (iter.MoveNext())
{
Console.WriteLine(iter.Current.ToString());
}
}
}
Sortie
Företag
A partir de l'exemple de code étant donné qu'il semble que vous utilisez la classe Microsoft.Windows.Design.Documents.Trees.DocumentNode
. Cependant, la documentation indique que cette classe n'est pas destinée à être utilisée directement. Puis-je vous demander ce que vous essayez de faire? Mise à jour: Il se peut que vous soyez confronté à un problème avec la normalisation des espaces (ce qui pourrait être fait par votre complément FireFox et non dans votre code). Avez-vous essayé de changer votre XPath en remplaçant le test text() = 'Företag'
par normalize-space() = 'Företag'
(Juste pour exclure le cas où il y a des espaces supplémentaires de début ou de fin)?
À quoi ressemblent les données que vous voulez analyser? –
J'ai eu un cas de "magie", Il a soudainement commencé à travailler, ce qui est à la fois génial et irritant .... J'ai lu quelque part que VS commence à stocker en UTF8 d'abord en cas de besoin? –
Le format VS stocke votre fichier source ne devrait pas importer parce que les chaînes dans le C# sont toujours en Unicode à l'exécution (http://www.yoda.arachsys.com/csharp/strings.html). Si votre document XML d'entrée a été chargé correctement, l'expression XPath et XML sont codés en Unicode en interne. –