我正在尝试从xml文件中读取xml节点值。但当我这样做的时候,它抛出了一个异常:
System.Xml.XmlException:"src"是意外的标记。所需的标记为"="。第29行,位置19。位于System.Xml.XmlTextReaderImpl.Throw(字符串res,字符串[]args)位于System.Xml.XmlTextReaderImpl.ParseAttributes()位于System.Xml.XmlTextReaderImpl.ParseElement()位于System.Xml.XmlTextReaderImpl.ParseElementContent()位于System.Xml.XmlLoader.LoadNode(布尔skipOverWhitespace)位于System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)位于System.Xml.XmlDocument.Load(XmlReader读取器)位于System.Xml.XmlDocument.Load(字符串文件名)位于中的ToolkitM9.RVersion.Window_Loaded(Object sender,RoutedEventArgs e)f: \Development\ToolkitM9\ToolkitM9\R版本.xaml.cs:line 48
这是我的代码:
XmlDocument xDoc = new XmlDocument();
xDoc.Load("Version.xml");
XmlNodeList name = xDoc.GetElementsByTagName("Name");
XmlNodeList ver = xDoc.GetElementsByTagName("Version");
XmlNodeList notes = xDoc.GetElementsByTagName("Notes");
XmlNodeList openSite = xDoc.GetElementsByTagName("openSite");
XmlNodeList link = xDoc.GetElementsByTagName("Link");
MessageBox.Show(
"Name: " + name[0].InnerText + "n" +
"Version: " + ver[0].InnerText + "n" +
"Notes: " + notes[0].InnerText + "n" +
"Open Link? " + openSite[0].InnerText + "n" +
"Link: " + link[0].InnerText + "n"
这是我的XML文件:
<Recovery>
<Name>TWRP</Name>
<Version>2.5.0.3</Version>
<Notes>There are some bugs remaining in this build. See here..</Notes>
<openSite>true</openSite>
<Link>http://google.com</Link>
</Recovery>
感谢您的帮助!:)
这对我有效。请注意,我使用的是System.Xml.Linq.XDocument
,而不是XmlDocument
。虽然XDocument
是首选,但我不认为使用XmlDocument
是您的问题。我同意@Karl Johan Sjogren的观点,即你可能没有解析你认为自己是什么,尽管我不同意需要设置标题。跳过文件并直接加载URI成功:
XDocument doc = XDocument.Load("https://s.basketbuild.com/dl/devs?dl=squabbi/m9/recoveries/GSM/Version.xml");
var name = doc.Root.Element("Name").Value;
var version = doc.Root.Element("Version").Value;
var notes = doc.Root.Element("Notes").Value;
var site = doc.Root.Element("openSite").Value;
var link = doc.Root.Element("Link").Value;
Console.WriteLine(name);
Console.WriteLine(version);
Console.WriteLine(notes);
Console.WriteLine(site);
Console.WriteLine(link);