繁体   English   中英

XML解析错误-C#

[英]XML Parsing Error - C#

我的代码在第7行第32位有一个XML解析错误,我不确定为什么

确切的错误转储

5/1/2010 10:21:42 AM
System.Xml.XmlException: An error occurred while parsing EntityName. Line 7, position 32.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, Int32 lineNo, Int32 linePos)
   at System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean isInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos)
   at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)
   at System.Xml.XmlTextReaderImpl.ParseAttributes()
   at System.Xml.XmlTextReaderImpl.ParseElement()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
   at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at Lookoa.LoadingPackages.LoadingPackages_Load(Object sender, EventArgs e) in C:\Users\Administrator\Documents\Visual Studio 2010\Projects\Lookoa\Lookoa\LoadingPackages.cs:line 30

Xml文件,请注意,这只是一个示例,因为我希望程序在开始填充此存储库之前就可以运行

<repo>
<Packages>
    <TheFirstPackage id="00001" longname="Mozilla Firefox" appver="3.6.3" pkgver="0.01" description="Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. A Net Applications statistic  put Firefox at 24.52% of the recorded usage share of web browsers as of March 2010[update], making it the second most popular browser in terms of current use worldwide after Microsoft's Internet Explorer." cat="WWW" rlsdate="4/8/10" pkgloc="http://google.com"/>
</Packages>
<categories>
    <WWW longname="World Wide Web" description="Software that's focus is communication or primarily uses the web for any particular reason."> </WWW>
    <Fun longname="Entertainment & Other" description="Music Players, Video Players, Games, or anything that doesn't fit in any of the other categories."> </Fun>
    <Work longname="Productivity" description="Application's commonly used for occupational needs or, stuff you work on"> </Work>
    <Advanced longname="System & Security" description="Applications that protect the computer from malware, clean the computer, and other utilities."> </Advanced>
</categories>
</repo>

C#代码的一小部分

//Loading the Package and Category lists
                //The info from them is gonna populate the listboxes for Category and Packages
                Repository.Load("repo.info");
                XmlNodeList Categories = Repository.GetElementsByTagName("categories");
                foreach (XmlNode Category in Categories)
                {
                    CategoryNumber++;
                    CategoryNames[CategoryNumber] = Category.Name;
                    MessageBox.Show(CategoryNames[CategoryNumber]);
                }

Messagebox.Show()只是为了确保得到正确的结果

“&”号在XML中具有特殊含义。 您需要更改:

Entertainment & Other

使用字符实体引用代替此字符:

Entertainment &amp; Other

这同样适用于System & Security

xml'&'中的字符无效。

更新:将其替换为&amp;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM