Click here to Skip to main content
16,004,927 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I have xml file like:
<?xml version="1.0" encoding="utf-8" ?>
<Event>
  <Events id="1" Venu="Venu1">
    <Name>Event1</Name>
    <Title>Title1</Title>
    <Date>2010/4/25</Date>
  </Events><Events id="2">
    <Name>Event2</Name>
    <Title>Title2</Title>
    <Date>2010/4/5</Date>
  </Events><Events id="3">
    <Name>Event3</Name>
    <Title>Title1</Title>
    <Date>2010/4/1</Date>
  </Events><Events id="4">
    <Name>Event3</Name>
    <Title>Title1</Title>
    <Date>2010/4/11</Date>
  </Events><Events id="5">
    <Name>Event3</Name>
    <Title>Title1</Title>
    <Date>2010/5/1</Date>
  </Events><Events id="5">
    <Name>Event3</Name>
    <Title>Title1</Title>
    <Date>2010/5/11</Date>
  </Events>
</Event>


I need to select event for example date in 2006 or 2007 using xquery or any other method, any help?
Please help
Posted
Updated 8-Oct-10 17:54pm
v5
Comments
Hiren solanki 8-Oct-10 23:53pm    
look again it is now in vb also. and if you want in vb then please attach tag name VB so that we can get clear understanding.
Abhinav S 9-Oct-10 3:05am    
Searching on the internet wll help you get some solutions.

Hi All,

This is the easiest way to get the events for 2006 or 2007, there are many different ways to get it, follow this.

XDocument xdoc = XDocument.Load("XMLFile1.xml");
if (xdoc.Element("Event") != null && xdoc.Element("Event").Elements("Events") != null && xdoc.Element("Event").Elements("Events").Count()>0)
{
foreach(XElement ele in xdoc.Element("Event").Elements("Events"))
{
if (ele.Element("Date") != null && ele.Element("Date").Value != null)
{
string str = Convert.ToDateTime(ele.Element("Date").Value).ToString("yyyy/MM/dd");
DateTime datetime = Convert.ToDateTime(str);
if (datetime.Year == 2006 || datetime.Year == 2007)
{
//Store this event in a variable for your purpose
}
}
}
}

If my answer is correct, please vote me.
 
Share this answer
 
VB
Dim xdoc As XDocument = XDocument.Load("Events.xml")
        If xdoc.Element("Event") IsNot Nothing AndAlso xdoc.Element("Event").Elements("Events") IsNot Nothing AndAlso xdoc.Element("Event").Elements("Events").Count() > 0 Then
            For Each ele As XElement In xdoc.Element("Event").Elements("Events")
                If ele.Element("Date") IsNot Nothing AndAlso ele.Element("Date").Value IsNot Nothing Then
                    Dim str As String = Convert.ToDateTime(ele.Element("Date").Value).ToString("yyyy/MM/dd")
                    Dim datetime As DateTime = Convert.ToDateTime(str)
                    'Store this event in a variable for your purpose
                    If datetime.Year = 2006 OrElse datetime.Year = 2007 Then
                    End If
                End If
            Next
        End If


VB
Error   2   Type 'XDocument' is not defined.    C:\Users\Iram\Documents\Visual Studio 2008\WebSites\JqueryCalender_XML\Calender2.aspx.vb    36  21  C:\...\JqueryCalender_XML\
 
Share this answer
 
i m using vb.net so in convert it not vb.net its giving me an error on following line
VB
Error   1   Name 'doc' is not declared. C:\Users\Iram\Documents\Visual Studio 2008\WebSites\JqueryCalender_XML\Calender2.aspx.vb    36  39  C:\...\JqueryCalender_XML\



VB
Dim nodeList As XmlNodeList = doc.SelectNodes("//Event/Events")
 
Share this answer
 
Comments
Hiren solanki 8-Oct-10 23:51pm    
for that you need to declare 'doc' object of XmlDocument :)
Hiren solanki 8-Oct-10 23:52pm    
please put your answer as comment to my answer so that I can get notified,
Don't put as separate answer.
Hope you get some out of this.
[Csharp]
XmlNodeList nodeList = doc.SelectNodes("//Event/Events");
            foreach (XmlNode node in nodeList)
            {
                if (DateTime.Parse(node.ChildNodes[2].InnerText).Year == 2007 ||
                    DateTime.Parse(node.ChildNodes[2].InnerText).Year == 2006)
                {
                    //your required node here
                }

            }


[Modified to get VB for the OP]


VB
Dim nodeList As XmlNodeList = doc.SelectNodes("//Event/Events")
For Each node As XmlNode In nodeList
            
    If DateTime.Parse(node.ChildNodes(2).InnerText).Year = 2007 OrElse DateTime.Parse(node.ChildNodes(2).InnerText).Year = 2006 Then
'your required node here
    End If
Next



Please vote and Accept Answer if it Helped.
 
Share this answer
 
v2
I am also looking for the solution of the given problem.

-----------------------------------------------------------
How can Payday Loan Lenders can helps you in bad situation.Several Policies of Payday Loan are here for you.
 
Share this answer
 
i m getting an exception

Data at the root level is invalid. Line 1, position 1.

i have code on click event
VB
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
      Response.Write(Me.ddlMonth.SelectedItem.Text)
      Dim doc As XmlDocument = New XmlDocument()
      doc.LoadXml("Events.xml")

      'doc = ("Events.xml")
      Dim nodeList As XmlNodeList = doc.SelectNodes("//Event/Events")
      For Each node As XmlNode In nodeList
          If DateTime.Parse(node.ChildNodes(2).InnerText).Year = 2007 Then
              Response.Write("got it")
          ElseIf DateTime.Parse(node.ChildNodes(2).InnerText).Year = 2006 Then
              'your required node here
          End If
      Next

  End Sub
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900