Имя типа текста не существует в типе 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();