2015-07-28 53 views
0

我怎样才能获得属性的值:C#XML的XPath的SelectSingleNode属性

/Document/Setup/Info/Att/Group[6]/Attr[5]@value

我已经试过

String S = nest.SelectSingleNode("./osis:Info/osis:Att/osis:Group[6]>osis:Attr[5]@value).Value; 

以下作品为FilePath

String F = nest.SelectSingleNode("./osis:Info/osis:FilePath", >xmlns).Value; 

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<Document xmlns="http://www.ns.com/ns/ns"> 
    <Setup> 
    <Info> 
     <FilePath>\\computer1\project\E2002307\E2002307.drg</FilePath> 
     <Att> 
     <Group class="custom" name="Manu" desc="attributes" 
      ord="6"> 
      <Attr num="119" name="xyz" desc="zyx" type="s" ord="1" value="S355"> 
      <Valid perm="e" max="100"/> 
      </Attr> 
      <Attr num="120" name="thick" desc="thick." type="r" ord="2" value="5"> 
      <Valid perm="e" min="0" max="99999"/> 
      </Attr> 
      <Attr num="121" name="units" desc="units." type="s" ord="4" value="mm"> 
      <Valid perm="e" expr="mm" max="80"/> 
      </Attr> 
      <Attr num="123" name="time" desc="minutes." type="r" ord="24"> 
      <Valid perm="e" min="0"/> 
      </Attr> 
      <Attr num="124" name="X" desc="X direction." type="r" ord="11" value="3"> 
      <Valid perm="e" min="0"/> 
      </Attr> 
      <Attr num="125" name="Y" desc="Y direction." type="r" ord="12" value="1"> 
      <Valid perm="e" min="0"/> 
      </Attr> 
     </Group> 
+3

能告诉你的XML? – Oluwafemi

+0

@Oluwafemi我已经添加尽可能多的XML。 – user3842383

回答

0

假设上下文节点是<Setup>,那么正确的XPath来获得第五<Att>value属性下的第六<Group>将是如下:

./osis:Info/osis:Att/osis:Group[6]/osis:Attr[5]/@value 

边注:在大多数情况下,元素指数对于找到相应的元素是不可靠的。您可能希望通过属性值进行过滤,而不是,说f.e“找出具有属性name<Attr>元素等于X/Attr[@name='X']

+1

谢谢!这工作完美。我会看看下一个属性过滤。 – user3842383

+0

如果在这个实例中上面的值是空的,例如上面的值没有值。 – user3842383