0

我正在尝试从 C# 中的 xml 文件中读取某个部分。我在这里尝试使用此代码,但在 in 下出现编译器错误TextXmlNodeType.Text但奇怪的是它与智能感知一起出现,并与其他所有内容(如等)给出相同的错误ElementComment我错过了什么?

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>
4

1 回答 1

1

XmlNodeType是一个枚举。XmlNodeType.Text是一个值,而不是类型,但您正试图将其用作aa变量的类型。此外ReaderInnerXml()返回 a string,因此不清楚您希望如何迭代它。

必须XmlTextReader这个吗?几乎所有的 XML 工作都使用 LINQ to XML 变得更简单。例如,这就是我认为你所需要的:

var paths = XDocument.Load(xmlDoc)
                     .Descendants("Paths")
                     .Elements()
                     .Select(element => (string) element)
                     .ToList();
于 2017-04-07T08:52:37.373 回答