如何使用xpath搜索xml文件和显示字符串,并在dgv上显示它们
本文关键字:显示 并在 dgv 字符串 搜索 xpath xml 文件 何使用 | 更新日期: 2023-09-27 18:26:00
我创建了一个c#应用程序,在其中我必须加载.resx文件并在dgv上显示内容,加载.tmx文件并显示字符串的翻译。例如
<body>
<tu tuid="880">
<tuv xmllang="fr-FR">
<seg>Sélectionner un contact</seg>
</tuv>
<tuv xmllang="de-DE">
<seg>Kontakt auswählen</seg>
</tuv>
<tuv xmllang="en-US">
<seg>Choose Contact</seg>
</tuv>
<tuv xmllang="es-ES">
<seg>Elegir contacto</seg>
</tuv>
</tu>
我已经加载了dgv,并在Source列中显示了英文单词。如果dgv中的Source列包含Choose Contact,我必须在Target列中显示Elegir contacto。现在我已经使用了以下代码
XPathDocument doc;
XPathNavigator nav;
XPathExpression strExpression;
XPathNodeIterator iterator;
doc = new XPathDocument(OpenDialog.Filename);
nav = doc.CreateNavigator();
strExpression = "/body/tu[tuv/seg='Choose Contact']/tuv[@xmllang='fr-FR']/seg";
iterator = nav.Select(strExpression);
我被这条线卡住了。我必须在目标列中显示@xmllang值。我该怎么做?
我不熟悉XPathDocument,所以我选择了XmlDocument作为这种方法
string givenString = "Choose Contact";
string language = "fr-FR";
XmlDocument doc = new XmlDocument();
string filePath = "sample.xml";
doc.Load(filePath);
string path = "//tuv[seg='" + givenString + "']";
XmlNode rootNode = doc.SelectSingleNode(path).ParentNode.Clone();
string childPath= "//tuv[@xmllang='" + language + "']";
XmlNode node = rootNode.SelectSingleNode(childPath);
Console.WriteLine(node.InnerText);
--SJ