3

ID による XML を使用して言語翻訳を作成しています

XML:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <word id="1">Word1_English</word>
    <word id="2">Word2_English</word>
    <word id="3">Word3_English</word>

    <word id="10001">Word1_French</word>
    <word id="10002">Word2_French</word>
    <word id="10003">Word3_French</word>

    <word id="20001">Word1_Chinese</word>
    <word id="20002">Word2_Chinese</word>
    <word id="20003">Word3_Chinese</word>
</root>

コードビハインド:

XmlDocument xmlDocument;
FileInfo fileInfo;
XmlNodeList xmlNodeList;

string xPath = "D:\XML\LanguagePack.xml";
fileInfo = new FileInfo(xPath);
xmlDocument = new XmlDocument();
xmlDocument.Load(fileInfo.FullName);

xmlNodeList = xmlDocument.GetElementById("10001");
return xmlNodeList[0].InnerText; //should return 'Word1_French'

このコードは機能しませんxmlNodeList。null です。
コンテンツ Word1_French を取得するにはどうすればよいですか?

4

2 に答える 2

3

XML の解析には LINQ to XML を使用することをお勧めします。強く型付けされた素敵な API があります。整数 ID による文字列単語の取得は次のようになります ( System.Xml.Linq名前空間が必要です):

var xdoc = XDocument.Load(filePath);
string word = xdoc.Root.Elements()
                  .Where(w => (int)w.Attribute("id") == id)
                  .Select(w => (string)w)
                  .FirstOrDefault();

または、XPath を使用したさらに少ないコード ( System.Xml.XPath名前空間が必要):

string word = (string)xdoc.XPathSelectElement("//word[@id='10001']");
于 2013-11-05T10:43:10.917 に答える