以字符串形式显式检索XML元素的内容

时间:2012-11-20 17:19:29

标签: c# xml serialization xml-serialization

我有这样的XML:

<entry xmlns="http://www.w3.org/2005/Atom">
    <fullstoryimage>
        <img src="http://someimageurl/animage.jpg" width="220" height="150" border="0" />
    </fullstoryimage>
</entry>

和这样的模型:

[Serializable]
[XmlRoot("entry", Namespace = "http://www.w3.org/2005/Atom")]
public class NewsItem
{
    [XmlElement("fullstoryimage")]
    public string Image { get; set; }
}

如何正确标记'fullstoryimage'以将内容拉为字符串?

注意:XML不是我的设计,不能改变,但它可能看起来很傻。

2 个答案:

答案 0 :(得分:0)

如果你想要做的是获取图像链接,你可以使用Linq2Xml

XNamespace ns = "http://www.w3.org/2005/Atom";
var imgLink = XDocument.Parse(xml)
                .Descendants(ns + "img")
                .Select(i => i.Attribute("src").Value)
                .FirstOrDefault();

答案 1 :(得分:0)

为了保持序列化的一致性,我选择了这个:

public class StoryImage
{
    [XmlElement("img")]
    public Image Img { get; set; }
}

public class Image
{
    [XmlAttribute("src")]
    public string Source { get; set; }
}

[Serializable]
[XmlRoot("entry", Namespace = "http://www.w3.org/2005/Atom")]
public class NewsItem
{
    [XmlElement("fullstoryimage")]
    public StoryImage FullStoryImage { get; set; }
}

然后可以通过newsItem.FullStoryImage.Img.Source。

访问该URL