从XML文件中获取不带标记的行的内容

从XML文件中获取不带标记的行的内容,xml,f#,Xml,F#,我的程序有一个xml文件作为输入,我只想获取某一行的内容,不需要xml标记。。 例如: <string> xxx </string> xxx 如何仅获取“xxx”?如果您不使用嵌套标记,可以使用以下内容(只需获取第一组): ([^如注释中所述,您不应该使用正则表达式来解析XML,因为.NET有更好的库来解析XML。下面是使用XDocument类型从LINQ到XML的示例: // Reference assemblies for LINQ to XML #r "Syst

我的程序有一个xml文件作为输入,我只想获取某一行的内容,不需要xml标记。。 例如:

<string> xxx </string>
xxx

如何仅获取“xxx”?

如果您不使用嵌套标记,可以使用以下内容(只需获取第一组):


([^如注释中所述,您不应该使用正则表达式来解析XML,因为.NET有更好的库来解析XML。下面是使用
XDocument
类型从LINQ到XML的示例:

// Reference assemblies for LINQ to XML
#r "System.Xml.dll"
#r "System.Xml.Linq.dll"

open System.Xml.Linq

// Create document with your XML data
let doc = XDocument.Parse("<string> xxx </string>")
let el name = XName.Get(name)
// Get element named 'string' and pick its value
doc.Element(el "string").Value
//LINQ到XML的引用程序集
#r“System.Xml.dll”
#r“System.Xml.Linq.dll”
open System.Xml.Linq
//使用XML数据创建文档
让doc=XDocument.Parse(“xxx”)
让el name=XName.Get(name)
//获取名为“string”的元素并选择其值
文档元素(el“字符串”).值

不要使用正则表达式,而是使用XPath。为什么总是使用正则表达式?好的,我不使用正则表达式:)我只是在检查选项…说真的?一个没有嵌套标签的XML文档?任何事情都有可能,因为我们不知道他的XML文件的结构和他试图实现的目标。我不会对答案投反对票,因为它在技术上是正确的。但是,它的用处几乎没有,而且在我看来,它没有指向正确的目录Section.Thank.如果我想让它取值,不管标记名是什么?有选项吗?@cookya如果它是根元素,那么你可以写
doc.root.value
。否则你需要取
Elements()
返回的第一个元素,然后写一些类似
(doc.Elements()|>Seq.head)的值。
// Reference assemblies for LINQ to XML
#r "System.Xml.dll"
#r "System.Xml.Linq.dll"

open System.Xml.Linq

// Create document with your XML data
let doc = XDocument.Parse("<string> xxx </string>")
let el name = XName.Get(name)
// Get element named 'string' and pick its value
doc.Element(el "string").Value
#r "System.Xml.Linq.dll"

open System
open System.Linq
open System.Xml.Linq

let toXName s = XName.Get s

let xml = XDocument.Load @"data.xml"
let getElements elName = xml.Root.Descendants(toXName elName)

let main() = 
  (getElements "string").First().Value
  |> printfn "%s"
//  getElements "string" |> Seq.iter (fun x -> printfn "%s" x.Value)

do main()