Имя типа текста не существует в типе xmlnodetype

Я пытаюсь прочитать определенный раздел из XML-файла в C#. Я попытался использовать этот код здесь, но я получаю ошибку компилятора под Text в XmlNodeType.Text но странно то, что он приходит с intellisense и выдает ту же ошибку со всем остальным, как Element,Comment и т.д.. что мне не хватает?

XmlTextReader reader = new XmlTextReader(xmlDoc);
List<string> paths = new List<string>();
while (reader.Read())
{
    if (reader.NodeType == XmlNodeType.Element && reader.Name == "Paths")
        foreach(XmlNodeType.Text aa in reader.ReadInnerXml())
            paths.Add(aa);
}
reader.Close();

XML-файл

<Config>
    <Paths>
      <Input>C:\</Input>
      <Output>C:\</Output>
      <Log>\Logs</Log>
    </Paths>

    <SystemOwnerRoles>
      <Supplier>SUPPLIER</Supplier>
      <Mop>MOP</Mop>
    </SystemOwnerRoles>
</Config>

1 ответ

Решение

XmlNodeType это перечисление. XmlNodeType.Text это значение, а не тип, но вы пытаетесь использовать его в качестве типа aa переменная. более того ReaderInnerXml() возвращает string, так что не ясно, как вы ожидаете, чтобы повторить это.

Вы должны использовать XmlTextReader за это? Почти вся работа с XML проще с использованием LINQ to XML. Например, это все, что мне нужно:

var paths = XDocument.Load(xmlDoc)
                     .Descendants("Paths")
                     .Elements()
                     .Select(element => (string) element)
                     .ToList();
Другие вопросы по тегам