I'm trying to find out how to get translated memory from tmx files (i.e. XML files).
Here is an extract of a tmx file I'm working on.
<tmx>
<body>
<tu tuid="1">
<tuv xml:lang="en-US">
<seg>Memory</seg>
</tuv>
<tuv xml:lang="ar">
<seg>XXXXX</seg>
</tuv>
</tu>
<tu tuid="2">
<tuv xml:lang="en-US">
<seg>Address</seg>
</tuv>
<tuv xml:lang="ar">
<seg>yyyyy</seg>
</tuv>
</tu>
//
<body>
<tmx>
What I'm attempting to do is to search for a particular value inside "seg", and then get the corresponding value inside the next "seg".
In the above example, if I'm looking for
<seg>Memory<seg>
then, I need to retrieve
<seg>xxxxx<seg>
My coding is like this.
DataRow[] searchWordsArray = keyStrings.ToArray();
XmlNodeList nodelist = doc.SelectNodes("//body//tu");
for (int i = 0; i < searchWordsArray.Length; i++){
for (int n = 0; n < nodelist.Count; n++) {
string searchWord = searchWordsArray[i][KeyCol].ToString();
string result = "";
if (searchWord == nodelist[n].SelectSingleNode("/tuv[1]/seg").InnerText) {
result = nodelist[n].SelectSingleNode("/tuv[2]/seg").InnerText;
} else {
result = "No match";
}
}
}
However, this code gets null reference exception at
if (searchWord == nodelist[n].SelectSingleNode("/tuv[1]/seg").InnerText) {
I guess my Xpath expression contains some error. I'd appreciate if you would give any insight.