2015-07-28 42 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