2009-12-05 1 views
2

Вот выдержка из XML:Microsoft.XMLDOM - выбрать узел, который содержит конкретный узел

<?xml version="1.0" encoding="utf-8"?> 
<usa_map_locator> 
    <map_data> 
     <state> 
      <id>2</id> 
      <link/> 
     </state> 
     <state> 
      <id>3</id> 
      <link/> 
     </state> 
    </map_data> 
</usa_map_locator> 

мне нужно присвоить значение узла связи для состояния 2 (или 3 или 4 или 5 и т. Д.). Я использую объект MICROSOFT.XMLDOM для чтения исходного XML-документа и для его правильного использования требуются правильные методы.

ответ

2

doc.selectSingleNode ("/ usa_map_locator/map_data/state/id [. = '2'] :: parent()/link"). InnerText = "link value";

+0

Doh! Мне нужно узнать XPath! –

+0

'doc.selectSingleNode ("/usa_map_locator/map_data/state/id [. = '2'] /../ link "). InnerText =" "' работал –

1

Принятый ответ не работает по ряду причин попробовать это: -

doc.selectSingleNode("/usa_map_locator/map_data/state[id='2']/link").text = "value" 
+0

Мне удалось получить первый ответ для работы для моих нужд. Твой тоже правильный. –