从XML文件中提取属性名,给出c#中的ParentNode's属性值

本文关键字:属性 中的 ParentNode 给出 文件 XML 提取 | 更新日期: 2023-09-27 18:06:36

给定以下XML文件,

    - <CommandTiming Name="Architecture.Dome">
      <Sample Name="run1" EllapsedTime="627" /> 
      <Sample Name="run2" EllapsedTime="636" /> 
      <Sample Name="run3" EllapsedTime="650" /> 
      <Sample Name="run4" EllapsedTime="626" /> 
      <Sample Name="run5" EllapsedTime="643" /> 
      </CommandTiming>

我想提取的EllapsedTime为run1, run2, run3, run4和run5,给定的CommandTiming名称="架构。圆顶"

我想要一个值为627,636,650,626,643的数组。

谢谢。

从XML文件中提取属性名,给出c#中的ParentNode's属性值

应该这样做:

XDocument doc = XDocument.Parse(
 "<CommandTiming Name='Architecture.Dome'>" + 
        "<Sample Name='run1' EllapsedTime='627' />" +
        "<Sample Name='run2' EllapsedTime='636' /></CommandTiming>");
var values = doc.XPathSelectElements("CommandTiming[@Name='Architecture.Dome']/Sample")
    .Select(v => v.Attribute("EllapsedTime").Value);

实例:http://rextester.com/rundotnet?code=CNN24938

试试这样:

XDocument doc = XDocument.Parse(
 "<CommandTiming Name='Architecture.Dome'>" + 
        "<Sample Name='run1' EllapsedTime='627' />" +
        "<Sample Name='run2' EllapsedTime='636' /></CommandTiming>");//etc    
var elapsedTimes = doc.Root.Elements().Attributes("EllapsedTime").
    Select(e => e.Value).ToArray<string>();