2017-04-07 10 views
0

C#のxmlファイルから特定のセクションを読み込もうとしています。私はここでこのコードを使用しようとしましたが、私はのコードでTextのコンパイラエラーを取得しましたが、奇妙なことに、それはintellisenseが出て、ElementCommentなどのようなものと同じエラーが発生します。タイプ名テキストがタイプxmlnodetypeに存在しません

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

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

答えて

1

XmlNodeType

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ファイルが列挙型です。 XmlNodeType.Textは値であり型ではありませんが、変数aaの型として使用しようとしています。さらにReaderInnerXml()stringを返すので、それをどのように反復するかは不明です。

にはがあります。これにはXmlTextReaderを使用しますか?ほとんどすべてのXML作業は、LINQ to XMLを使用する方が簡単です。例えば、これは、私はあなたが必要だと思うすべてではありません:

var paths = XDocument.Load(xmlDoc) 
        .Descendants("Paths") 
        .Elements() 
        .Select(element => (string) element) 
        .ToList(); 
+0

は私がいけない何が '私は前にXMLを使用していないし、ない' LINQ'でその偉大しかし、病気、このαを与える決して最初に出会ったそのだけで何XMLTextReader'使用する必要があります試してみてください – WhatsThePoint

+0

@WhatsThePoint:LINQ to XMLをXmlReaderよりも使いやすく*一般的にLINQに不快な人は、*信じられないほど*便利なので、改善しようと強くお勧めします。 –

+0

これを実行する際に例外が発生しました。ルートレベルのデータは行1の位置で無効です。 – WhatsThePoint

関連する問題