Parse XML using C#

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • snehil
    New Member
    • Jun 2009
    • 19

    Parse XML using C#

    I have an xml like

    Code:
    <?xml version='1.0' encoding='UTF-8'?>
        <feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:docs='http://schemas.google.com/docs/2007' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;C0EARXY8eit7ImA9WhVREE0.&quot;'>
        
        <id>https://docs.google.com/feeds/default/private/full</id>
        <updated>2012-03-17T16:27:24.872Z</updated>
        <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/docs/2007#item' label='item'/>
        
        <title>Available Documents - </title>
        
        <link rel='alternate' type='text/html' href='https://docs.google.com'/>
        <link rel='http://schemas.google.com/g/2005#resumable-create-media' type='application/atom+xml' href='https://docs.google.com/feeds/upload/create-session/default/private/full'/>
        <link rel='http://schemas.google.com/docs/2007#alt-post' type='application/atom+xml' href='https://docs.google.com/feeds/upload/file/default/private/full'/>
        <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://docs.google.com/feeds/default/private/full'/>
        <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://docs.google.com/feeds/default/private/full'/>
        <link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='https://docs.google.com/feeds/default/private/full/batch'/>
        <link rel='self' type='application/atom+xml' href='https://docs.google.com/feeds/default/private/full/-/document'/>
        
        <some more tags />
        
        <entry gd:etag='&quot;E0UXTh9YDSt7ImBr&quot;'>
        <some more tags />
        <title>hi</title>
        <link rel='http://schemas.google.com/docs/2007#parent' type='application/atom+xml' href=''/>
        <link rel='alternate' type='application/atom+xml' href=''/>
        <link rel='http://schemas.google.com/docs/2007#embed' type='application/atom+xml' href=''/>
        <link rel='http://schemas.google.com/docs/2007#icon' type='application/atom+xml' href=''/>
        <link rel='http://schemas.google.com/g/2005#resumable-edit-media' type='application/atom+xml' href=''/>
        <link rel='http://schemas.google.com/docs/2007#alt-edit-media' type='application/atom+xml' href=''/>
        <link rel='http://schemas.google.com/docs/2007/thumbnail' type='application/atom+xml' href=''/>
        <link rel='self' type='application/atom+xml' href=''/>
        <link rel='edit' type='application/atom+xml' href=''/>
        <link rel='edit-media' type='application/atom+xml' href=''/>
        ...
        <some more tags />
        ...
        </entry>
        <entry>
        ...
        </entry>
        ...
    I want to fetch The attribute "href" of the element <link> whose rel="http://schemas.google. com/g/2005#resumable-create-media"

    What I'm doing right now is I'm getting list of nodes with xmlnode = doc.GetElements ByTagName("link "); then I'm iterating throught all of them and fetching the first one whose rel="http://schemas.google. com/g/2005#resumable-create-media"

    So essentially m looping through all the nodes <link> when I'm just interested in those which are next child of node <feed> and are not inside node <entry>
    A <feed> have multiple <entry> nodes which inturn have multiple<link> tags..
    And instead I would like to just get the list of <link> which are directly in <feed> and not in <entry>
    Any help would be appreciated..
  • Frinavale
    Recognized Expert Expert
    • Oct 2006
    • 9749

    #2
    I think that you should probably use the XmlDocument class to help you manage the XML. Once you load the XML document into this class, it creates nodes that you work with. You should be able to access the attributes that you are looking for through the nodes.

    It sounds like you are already on the right track.

    -Frinny

    Comment

    Working...