前提・実現したいこと
以下の様なxmlを読み込みたい
xml
1<?xml version="1.0" encoding="utf-8"?> 2<setting> 3 <folder>D:\data\temp</folder> 4 <sub> 5 <data id="1"> 6 <name>1</name> 7 <test>1</test> 8 </data> 9 <data id="2"> 10 <name>2</name> 11 <test>1</test> 12 </data> 13 <data id="3"> 14 <name>3</name> 15 <test>1</test> 16 </data> 17 <data id="4"> 18 <name>4</name> 19 <test>1</test> 20 </data> 21 </sub> 22</setting>
発生している問題・エラーメッセージ
log4net:ERROR Error while loading XML configuration System.Xml.XmlException: ルート要素が複数あります。 行 6、位置 2。 場所 System.Xml.XmlTextReaderImpl.Throw(Exception e) 場所 System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 場所 System.Xml.XmlTextReaderImpl.ParseDocumentContent() 場所 System.Xml.XmlTextReaderImpl.Read() 場所 System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) 場所 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) 場所 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean pre serveWhitespace) 場所 System.Xml.XmlDocument.Load(XmlReader reader) 場所 log4net.Config.XmlConfigurator.InternalConfigure(ILoggerRepository repos itory, Stream configStream)
該当のソースコード
C#
1using System.Xml.Serialization; 2 3FileStream file = new FileStream(filePath, FileMode.Open); 4XmlSerializer serializer = new XmlSerializer(typeof(SettingInfoModel)); 5Info = (SettingInfoModel)serializer.Deserialize(file); ←ココで発生 6file.Close();
C#
1[XmlRoot("setting")] 2public class SettingInfoModel 3{ 4 [XmlElement("folder")] 5 public string folder { get; set; } 6 7 [XmlArray("sub")] 8 [XmlArrayItem("data")] 9 public List<DataModel> dataModel { get; set; } 10 11} 12 13public class DataModel 14{ 15 [XmlAttribute("id")] 16 public int id { get; set; } 17 18 [XmlElement("name")] 19 public string Name { get; set; } 20 [XmlElement("test")] 21 public string Test { get; set; } 22}
試したこと
各サンプルプログラムを試しましたが、同様のエラーが発生しました。
補足情報(FW/ツールのバージョンなど)
windows7 professional 64bit
visual studio communitiy 2017
.net 4.5.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。