Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用XDocument和XElement将XML作为单独的值返回_C#_.net_Xml_Linq - Fatal编程技术网

C# 如何使用XDocument和XElement将XML作为单独的值返回

C# 如何使用XDocument和XElement将XML作为单独的值返回,c#,.net,xml,linq,C#,.net,Xml,Linq,我试图使用XDocument和XElement从XML文档中获取值。我试图得到三个值,但是当我试图返回它们时,它们被合并为一个值。以下是我正在搜索的XML: <create_maint_traveler> <Paths> <outputPath value="D:\Intercim\DNC_Share\itcm\DataInput\MCDHeaderDrop\" /> <outputPath_today valu

我试图使用XDocument和XElement从XML文档中获取值。我试图得到三个值,但是当我试图返回它们时,它们被合并为一个值。以下是我正在搜索的XML:

<create_maint_traveler>     
<Paths>
        <outputPath value="D:\Intercim\DNC_Share\itcm\DataInput\MCDHeaderDrop\" />
        <outputPath_today value="D:\Intercim\DNC_Share\itcm\DataInput\Today\" />
        <log value="D:\Intercim\DNC_Share\itcm\Log\CreateMaintLog.log" />
    </Paths>
</create_maint_traveler>
当我输出到一个文件时,我发现返回的值是

D:\Intercim\DNC_Share\itcm\DataInput\MCDHeaderDrop\D:\Intercim\DNC_Share\itcm\DataInput\Today\D:\Intercim\DNC_Share\itcm\Log\CreateMaintLog.log
否则就不会有任何回报。我将XML文件中的值放在返回一个长值的标记之外。我不知道如何分别返回outputPath、outputPath_和日志值。非常感谢您的帮助。

请尝试:

var xDoc = XDocument.Load(XML);
var paths = xDoc.Root.Elements("Paths");

var res = from p in paths
          select new
                     {
                         outputPath = p.Element("outputPath").Attribute("value").Value,
                         outputPath_today = p.Element("outputPath_today").Attribute("value").Value,
                         log = p.Element("log").Attribute("value").Value
                    };

 foreach(path in res)
 {
      System.Console.WriteLine(path.outputPath);
      System.Console.WriteLine(path.outputPath_today);
      System.Console.WriteLine(path.log);
      // or do anything you want to do with those properties
 }

您将在匿名对象的
IEnumerable
中获得
outputPath
outputPath\u的值。这些对象都将具有属性
outputPath
outputPath\u today
log
,其中包含从XML填充的值。

您根本没有显示返回的内容。(也不清楚为什么不直接要求这些值。)
var xDoc = XDocument.Load(XML);
var paths = xDoc.Root.Elements("Paths");

var res = from p in paths
          select new
                     {
                         outputPath = p.Element("outputPath").Attribute("value").Value,
                         outputPath_today = p.Element("outputPath_today").Attribute("value").Value,
                         log = p.Element("log").Attribute("value").Value
                    };

 foreach(path in res)
 {
      System.Console.WriteLine(path.outputPath);
      System.Console.WriteLine(path.outputPath_today);
      System.Console.WriteLine(path.log);
      // or do anything you want to do with those properties
 }