Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1148
  • Last Modified:

ASP.NET - How to use System.Xml.Linq.XElement to write XML

Hi Experts,

I have got the following code that reads BBC RSS. I need to have this code object write this XML into a file. I used to do that with Dataset.WriteXML with one line, but seem not to know the way with linq:

    Function getRSSPosts(ByVal sLink As String) As Object
        Dim rssFeed As XDocument = XDocument.Load(sLink)

        Dim posts = From item In rssFeed.Descendants("item") _
                    Select Title = item.Element("title").Value, _
                           Published = item.Element("pubDate").Value, _
                           Description = item.Element("description").Value, _
                           Link = item.Element("link").Value
        Return posts

    End Function
0
feesu
Asked:
feesu
  • 4
  • 2
1 Solution
 
DhaestCommented:
An Example. You should get the idea.


XElement xml = new XElement("RSSFeeds", 
            From item In rssFeed.Descendants("item") 
            select new XElement("RSSFeed", 
                new XElement("Title", item.Element("title").Value), 
                new XElement("Published", item.Element("pubDate").Value), 
                new XElement("Description ", item.Element("description").Value), 
                new XElement("LIink", item.Element("link").Value)
                ) 
            ); 

Open in new window

0
 
feesuAuthor Commented:
I still can't get it! Plus, can you write it with vb?
0
 
DhaestCommented:
Write an XML File Using LINQ to XML
http://blog.linqexchange.com/index.php/how-to-write-an-xml-file-using-linq-to-xml/
XDocument xdoc = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"),
                new XComment("List of RSSFeeds"),
            XElement xml = new XElement("RSSFeeds", 
            From item In rssFeed.Descendants("item") 
            select new XElement("RSSFeed", 
                new XElement("Title", item.Element("title").Value), 
                new XElement("Published", item.Element("pubDate").Value), 
                new XElement("Description ", item.Element("description").Value), 
                new XElement("LIink", item.Element("link").Value)
                ) 
            ); 
            // save the document
            xdoc.Save(@"c:temp2sample.xml");

Open in new window

0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
feesuAuthor Commented:
Thank you for the code. I will try it out and get back to you!
0
 
feesuAuthor Commented:
Dhaest,

I tried to convert your code to vb but I got an error on several converters. Can you post the code in vb for me?
0
 
feesuAuthor Commented:
Dhaest,

I solved it by simply adding the following line in the main getPosts function right before the Return!

        rssFeed.Save(Server.MapPath("~\RSS_BBC.xml"))


Thank you for your time!
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now