我可以解析xml文件,包括:或/使用c#

时间:2012-06-23 17:30:13

标签: c# xml

我可以使用C#解析包含:/的文件吗?

出现此错误:

  

System..dll

中出现未处理的“System..Exception”类型异常

其他信息:/字符,十六进制值0x2F可以包含在名称中。

解析此文件时:

<profile>
    <mini>
        <Album URI="http://dbpedia.org/ontology/Album">
            <predicate queryType="getObjects">http://dbpedia.org/ontology/abstract</predicate>
            <predicate queryType="getObjects">http://dbpedia.org/ontology/artist</predicate>
            <predicate queryType="getObjects">http://dbpedia.org/ontology/genre</predicate>
            <predicate queryType="getObjects">http://dbpedia.org/ontology/producer</predicate>
            <predicate queryType="getObjects">http://dbpedia.org/ontology/releaseDate</predicate>
        </Album>
       </mini>
</profile>

2 个答案:

答案 0 :(得分:1)

我发现你的xml没有问题,代码可以正常工作

XDocument xDoc = XDocument.Parse(xml);
var result = xDoc.Descendants("Album")
    .Select(n => new
    {
        Album = n.Attribute("URI").Value,
        Predicates = n.Elements("predicate").Select(p=>p.Value).ToArray()
    })
    .ToArray();

答案 1 :(得分:0)

您可以使用 LINQ2XML 来解析XML。

XElement xel = XElement.Load(filePath);
//you can even load the XML from a string/stream etc also....

if (xel != null)
{
    foreach (var mini in xel.Elements("mini"))
    {
        foreach (var album in mini.Elements("Album"))
        {
            string attrValue = album.Attribute("URI").Value;
            foreach (var predicate in album.Elements("predicate"))
            {                          
                string content = predicate.Value;
            }
        }
    }
}