C#xdocument从element读取并将值放入字符串中

时间:2016-04-26 13:12:02

标签: c# copy linq-to-xml

我有问题。 这是我第一次使用c#

中的xml文档

我有一个这样的XML文档:

  <root>
    <GLOBAL>
        <copy>@srcdir@c:\test1\test.txt, @destdir@C:\test1\test.txt</copy>
    </GLOBAL>
  </root>

现在我想在c#中创建一个加载xml的应用程序(使用xdocument完成),你选择了一个选项(在本例中为global),然后它获取了copy元素,并且复制了下面列出的文件这个元素。

我有复制功能正常工作,加载xml已经完成,但是在变量中获取srcdir和destdir是个问题。

任何可以帮助我走上正轨的人吗?

亲切的问候,

2 个答案:

答案 0 :(得分:0)

也许你应该尝试这样做:

<copy src="c:\test1\test.txt" dest="C:\test1\test.txt"/>

并获得归属感。

答案 1 :(得分:0)

使用LinqXml,您可以执行此操作。

    XDocument doc = XDocument.Load(filepath);       
    var copyitems = doc.Descendants("GLOBAL")   // Read all descendants     
        .Select(s=> 
            {
                var splits = s.Value.Split(new string[] {"@srcdir@", "@destdir@"}, StringSplitOptions.RemoveEmptyEntries); // split the string to separate source and destination.
                return new { Source = splits[0].Replace(",",""), Destination = splits[1].Replace(",","")};
            })
        .ToList();

现在你可以将源和目的地读作......

    foreach(var copy in copyitems)
    {
        Console.WriteLine("{0}- {1}", copy.Source, copy.Destination);
    } 

<强>输出:

c:\test1\test.txt - C:\test1\test.txt

选中此Demo