XML示例:
            <Record>
              <Field>
                <FieldName>SeverityDesc</FieldName>
                <FieldValue>Moderate</FieldValue>
              </Field>
              <Field>
                <FieldName>StencilName</FieldName>
                <FieldValue>Car - Internal - Portrait</FieldValue>
              </Field>
              <Field>
                <FieldName>ServerStencilImagePath</FieldName>
                <FieldValue>\\tbs-vm-hosted\TBS\BCA\Stencils\Car-Internal-Portrait.png</FieldValue>
              </Field>
              <Field>
                <FieldName>X</FieldName>
                <FieldValue>240</FieldValue>
              </Field>
              <Field>
                <FieldName>Y</FieldName>
                <FieldValue>120</FieldValue>
              </Field>
           </Record>
用户要传两个参数过来,分别是:XPathNavigator和StencilName(StencilName也就是一个节点里的内容),现在我想写一个方法,运用这两个参数,获取StencilName、X、Y对应的值(也就是Car - Internal - Portrait、240和120),应该怎么写?

解决方案 »

  1.   

    XPathNavigator 是什么呢?没有表述清楚奥!
      

  2.   

        string xml = @"<root>
             <Field>
      <FieldName>SeverityDesc</FieldName>
      <FieldValue>Moderate</FieldValue>
      </Field>
      <Field>
      <FieldName>StencilName</FieldName>
      <FieldValue>Car - Internal - Portrait</FieldValue>
      </Field>
      <Field>
      <FieldName>ServerStencilImagePath</FieldName>
      <FieldValue>\\tbs-vm-hosted\TBS\BCA\Stencils\Car-Internal-Portrait.png</FieldValue>
      </Field>
      <Field>
      <FieldName>X</FieldName>
      <FieldValue>240</FieldValue>
      </Field>
      <Field>
      <FieldName>Y</FieldName>
      <FieldValue>120</FieldValue>
      </Field></root>";
                XElement xmlPage = XElement.Parse(xml);
                var query = from x in xmlPage.Descendants("Field")
                            where new string[] { "StencilName","X", "Y" }.Contains(x.Element("FieldName").Value)
                            select x.Element("FieldValue").Value;
                foreach (var q in query)
                {
                    Console.WriteLine(q);
                }
    根据参数生成new string[] { "StencilName","X", "Y" }
      

  3.   

    XPathNavigator 的 Select 方法返回的 XPathNodeIterator 遍历选定的节点。
    http://msdn.microsoft.com/en-us/library/0ea193ac.aspx