Узлы выбора XML не ограничены списком XmlNodeList - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь разделить мой XmlNodeList на XmlNodes по SelectNodes.Я могу распечатать содержимое моего разделенного XmlNodeList, однако, когда я запускаю foreach на отдельном XmlNode, testNode, он запускается на исходном NodeList, а не на отдельном XmlNode из массива.

XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(new StringReader(xmlData));
    string xmlPathPattern = "//data/set";
    XmlNodeList setNodeList = xmlDoc.SelectNodes(xmlPathPattern);
    XmlNode firstSetNode = setNodeList[0];
    string xmlPathPattern2 = "//word";
    XmlNodeList setListOne = firstSetNode.SelectNodes(xmlPathPattern2);
    foreach (XmlNode wordnode in setListOne)
    {
        XmlNode english = wordnode.FirstChild;
        XmlNode infinitive = english.NextSibling;
        XmlNode audio = infinitive.NextSibling;
        string englishString = english.InnerXml;
        string infinitiveString = infinitive.InnerXml;
        string audioString = audio.InnerXml;

    }

Распечатка, которую я получаю из моего firstSetNode.InnerXml.ToString () или .innerTest.ToString (), содержит только первый набор, однако мой цикл foreach на моем setListOne выполняет итерацию по всему исходному setNodeList, т.е. мои строки foreach содержат все слова.Есть что-то, чего я здесь не хватает?спасибо

Мой xml структурирован как

<data>

<set>
    <word>
        <english>I open</english>
        <spanish>abro</spanish>
        <audio>abro</audio>
    </word>
    <word>
        <english>you (tú) open</english>
        <spanish>abres</spanish>
        <audio>abres</audio>
    </word>
    <word>
        <english>you (Ud) open</english>
        <spanish>abre</spanish>
        <audio>abre</audio>
    </word>
    <word>
        <english>he/she opens</english>
        <spanish>abre</spanish>
        <audio>abre</audio>
    </word>
    <word>
        <english>we open</english>
        <spanish>abrimos</spanish>
        <audio>abrimos</audio>
    </word>
    <word>
        <english>you all/they open</english>
        <spanish>abren</spanish>
        <audio>abren</audio>
    </word>
</set>
<set>
    <word>
        <english>I finish</english>
        <spanish>acabo</spanish>
        <audio>acabo</audio>
    </word>
    <word>
        <english>you (tú) finish</english>
        <spanish>acabas</spanish>
        <audio>acabas</audio>
    </word>
    <word>
        <english>you (Ud) finish</english>
        <spanish>acaba</spanish>
        <audio>acaba</audio>
    </word>
    <word>
        <english>he/she finishes</english>
        <spanish>acaba</spanish>
        <audio>acaba</audio>
    </word>
    <word>
        <english>we finish</english>
        <spanish>acabamos</spanish>
        <audio>acabamos</audio>
    </word>
    <word>
        <english>you all/they finish</english>
        <spanish>acaban</spanish>
        <audio>acaban</audio>
    </word>
</set>

...