<p>I have an XML file, which I open in F# like this:</p>

<pre><code>let Bookmarks(xmlFile:string) = 
    let xml = XDocument.Load(xmlFile)
</code></pre>

<p>Once I have the XDocument I need to navigate it using LINQ to XML and extract all specific tags. Part of my solution is:</p>

<pre><code>let xname (tag:string) = XName.Get(tag)
let tagUrl (tag:XElement) = let attribute = tag.Attribute(xname "href")
                            attribute.Value
let Bookmarks(xmlFile:string) = 
    let xml = XDocument.Load(xmlFile)
    xml.Elements &lt;| xname "A" |&gt; Seq.map(tagUrl)
</code></pre>

<p>How can I extract the specific tags from the XML file?</p>

Caveat: I've never done linq-to-xml before, but looking through other posts on the topic, this snippet has some F# code that compiles and does
something
, and thus it may help you get started:
```
```
open System.IO
open System.Xml
open System.Xml.Linq 

let xmlStr = @"<?xml version='1.0' encoding='UTF-8'?>
<doc>
    <blah>Blah</blah>
    <a href='urn:foo' />
    <yadda>
        <blah>Blah</blah>
        <a href='urn:bar' />
    </yadda>
</doc>"

let xns = XNamespace.op_Implicit ""
let a = xns + "a"
let reader = new StringReader(xmlStr)
let xdoc = XDocument.Load(reader)
let aElements = [for x in xdoc.Root.Elements() do
                 if x.Name = a then
                     yield x]
let href = xns + "href"
aElements |> List.iter (fun e -> printfn "%A" (e.Attribute(href)))
```
```