Solved

Filter xml file

Posted on 2008-06-23
8
338 Views
Last Modified: 2013-11-11
Hi Experts,

I have a xml file that is constructed by using a view on an SQL table, the xml file is used to supply mapping co-ordinates,
unfortunately I am unable to filter this view at source. How could I Filter this xml by the Title element
and use this filter to write another xml file with the same elements.



<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:georss="http://www.georss.org/georss/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <item>
      <title>XTLM500</title>
      <type>1</type>
      <description>&lt;img src= Images/Small.jpg&gt;&lt;br&gt United Kingdom&lt;br&gt;&lt;strong&gt;Vehicle Type</description>
      <icon>Images/truck-small-picture5.gif</icon>
      <ordnum>YourOrderNum</ordnum>
      <geo:lat>51.6922833333333</geo:lat>
      <geo:long>-1.87274666666667</geo:long>
    </item>
  </channel>
</rss>

Regards,
JoeBo
0
Comment
Question by:JoeBo747
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
8 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 21849124
I don't quite get the context for the question.   Are you saying that you have a DataSet that is constructed and filled from an XML file, and you want to create a RowFilter for a DataView?
0
 
LVL 1

Author Comment

by:JoeBo747
ID: 21853090
Hi TheLearnedOnei,
Thanks for the reply I have an XML file that plots positions on virtual earth the XML file is created using the a dblm datasource (monitoring)  is created using a view on  sql server 2005. This view has some fixed delimiters but I also wish to further limit the data source using a variable that must be supplied at runtime. The view does not allow this to happen so I need to either find a method that will achieve this or filter the resulting XML file a rebuild an xml file with the required records. Can you suggest a fix? I have reproduced the code that plots the position.

regards,

JoeBo

  Try
            Dim db As New MonitoringDataContext
            Dim geoRSS = _
                 <rss xmlns:georss="http://www.georss.org/georss/">
                     <channel>
                         <%= From Monitoring In db.MonViews _
                             Let desc = "<img src= Images/SmallGBA.jpg" _
                             & "><br>" & Monitoring.Location _
                             & "<br><strong>Vehicle Type" _
                             Select <item>
                                        <title><%= Monitoring.OrdNum %></title>
                                        <type><%= Monitoring.TripType %></type>
                                        <description><%= desc %></description>
                                        <icon><%= Monitoring.VehDescription %></icon>
                                        <ordnum><%= Monitoring.OrdNum %></ordnum>
                                        <geo:lat><%= Monitoring.Latitude %></geo:lat>
                                        <geo:long><%= Monitoring.Longitude %></geo:long>
                                    </item> %>
                     </channel>
                 </rss>
            geoRSS.Save(Server.MapPath("Monitoring.xml"))
            'Me.TextBox1.Text = (geoRSS.ToString)
            'LoadTree()
            If geoRSS...<item>.Count > 0 Then
                Session("georss") = geoRSS
 
                Me.body.Attributes.Add("onload", String.Format("GetMap()"))
            Else
                'Me.lblStatus.Visible = True
                Session("georss") = <rss></rss>
            End If
        Catch ex As Exception
            MsgBox(Err.Description)
        Finally
            If Not Page.IsPostBack Then LoadTree()
        End Try

Open in new window

0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 21854094
Are you talking about version 3.5, and LINQ?
0
Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

 
LVL 1

Author Comment

by:JoeBo747
ID: 21856891
Hi TheLearnedOne,

Sorry about the delay I have been out. Yes I am using version 3.5 and LINQ!

Regards,
JoeBo
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 21880022
I am sorry, but I can't help you with that, yet.
0
 
LVL 4

Accepted Solution

by:
ad5qa earned 500 total points
ID: 21953852
Try this, I am a begineer at Linq and there may be a better way. With this you can add a where clause also. Add your xml description and whatever before and after and you can stream to a file. Could be your starting point.



 XDocument xmlDoc = XDocument.Load("http://www.georss.org/georss/"); //Replace with URL
        var q = from c in xmlDoc.Descendants("item")
 
                select "<title>" + (string)c.Element("title") + "</title>" +
                       "<type>" + (string)c.Element("type") + "</type>" +
                       "<description>" + (string)c.Element("description") + "</description>" +
                       "<icon>" + (string)c.Element("icon") + "</icon>" +
                       "<ordnum>" + (string)c.Element("ordnum") + "</ordnum>" +
                       "<geo:lat>" + (string)c.Element("geo:lat") + "</geo:lat>" +
                       "<geo:lon>" + (string)c.Element("geo:lon") + "</geo:lon>";
                
        foreach (string name in q)
        {
            Console.WriteLine(name);
        }

Open in new window

0

Featured Post

Business Impact of IT Communications

What are the business impacts of how well businesses communicate during an IT incident? Targeting, speed, and transparency all matter. Find out more in this infographic.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question