Найти значения под одним узлом в XML

Ниже приведен формат файла xml, из которого следует искать слова.

<Book>
<Page id="1">
<Head>Preface</Head>
<Body>
<Paragraph>
    <Line>
        <Word>
            <Char>T</Char>
            <Char>h</Char>
            <Char>i</Char>
            <Char>s</Char>
        </Word>
        <Word>
            <Char>-</Char>
        </Word>
        <Word>
            <Char>i</Char>
            <Char>s</Char>
        </Word>
        <Word>
            <Char>-</Char>
        </Word>
        <Word>
            <Char>s</Char>
            <Char>a</Char>
            <Char>m</Char>
            <Char>p</Char>
            <Char>l</Char>
            <Char>e</Char>
        </Word>
        <Word>
            <Char>-</Char>
        </Word>
        <Word>
            <Char>t</Char>
            <Char>e</Char>
            <Char>x</Char>
            <Char>t</Char>
        </Word>
    </Line>
</Paragraph>
</Body>
</Page>

Я использовал приведенные ниже выражения XPath в C #, чтобы найти значения Char Node.

XmlDocument objXmlDoc = new XmlDocument();
XmlNodeList objXmlNodeList;
objXmlDoc.Load(sFilePath);
objXmlNodeList = objXmlDoc.SelectNodes("//CHAR[translate(text(),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='" + txtFindText.Text.ToUpper() + "']");

Здесь, как получить полное слово с XPath сверху XML File?

Ответы на вопрос(2)

XDocument xDoc = XDocument.Parse(xml); //or XDocument.Load(fileName)
var words = xDoc.Descendants("Word")
                .Select(w => String.Join("",w.Descendants("Char").Select(c => c.Value)))
                .ToList();

--РЕДАКТИРОВАТЬ--

для @ Y.Ecarri

var words2 = xDoc.XPathSelectElements("//Word")
                 .Select(w => String.Join("", w.Elements().Select(c => c.Value)))
                 .ToList();
 10 окт. 2012 г., 09:35
@ Itz.Irshad Что вы думаетеXPathSelectElements является?
 Itz.Irshad10 окт. 2012 г., 09:29
@ L.B: Ну, это может быть хорошим решением, но здесь требуется XPath. Кстати, спасибо за время.
 09 окт. 2012 г., 15:36
Отличное решение, но это не XPATH
Решение Вопроса

что XML / XPATH не обеспечивает порядок, поскольку результатом запроса является «набор узлов». который по определению является «неупорядоченным набором узлов без дубликатов».

http://www.w3.org/TR/xpath/

Тем не менее, вы можете приблизиться к требованию. Например, вы можете получить первое слово:

XmlDocument objXmlDoc = new XmlDocument();
XmlNodeList objXmlNodeList;
objXmlDoc.Load(sFilePath);
objXmlNodeList = objXmlDoc.SelectNodes("//Word");
string s = string.Empty;
XmlNodeList wordNodes = objXmlNodeList[0].ChildNodes;
foreach (XmlNode characterNode in wordNodes)
{
   s = s + characterNode.InnerText;
}

Ваш ответ на вопрос