【发布时间】:2012-10-24 18:43:04
【问题描述】:
我正在尝试解析一些我认为在 .net 3.5 中使用 Linq 格式错误的 xml,我需要从 xml 中获取数据并将数据插入到变量中,我一直在使用 XmlDocument 来解析 xml,非常感谢任何示例或帮助
XML --
<?xml version="1.0" encoding="UTF-8"?>
<centovacast version="2.2.4" host="my.domain.com">
<response type="success">
<message>Complete</message>
<data><row>
<field name="mount">/stream</field>
<field name="listenercount">0</field>
<field name="genre">Unspecified</field>
<field name="url">http://</field>
<field name="title"></field>
<field name="currentsong">Placebo - One Of A Kind</field>
<field name="bitrate">128</field>
<field name="sourceconnected">1</field>
<field name="serverstate">1</field>
<field name="sourcestate">1</field>
<field name="reseller">0</field>
<field name="ipaddress"></field>
<field name="port">13282</field>
<field name="proxy">0</field>
<field name="servertype">ShoutCast</field>
<field name="sourcetype">icescc</field>
</row><row><field></field></row></data></response></centovacast>
另一个问题是有时“currentsong”值可能包含特殊字符,例如! , % , ^ & 等等,我知道这有时会导致 xml 出现问题。
-- 我试图用来解析 XML 的代码
XElement xml = XElement.Parse(data);
var query = from p in xml.Elements("name")
select p;
foreach (var record in query)
{
MessageBox.Show(String.Format("Info: {0} {1}",
record.Element("url"),
record.Element("title")));
}
【问题讨论】:
-
您是否包含了 XML 示例?它没有出现(至少对我来说没有)。
-
LINQ to XML 假定 XML 有效 - 它无法处理格式错误的 XML。
-
您发布的 XML 格式正确。有什么问题?
-
我确实包含了 xml,但我需要进行一些编辑才能让它真正出现。
-
这不会使其格式错误。发布您的 LINQ 并解释您期望发生的事情并没有发生。