2016-03-21 2 views
-4

У меня есть XML-файл, который имеет значения внутри как это:Regex запрос в XML для извлечения значения

<Root> 
    <Request> 
     <EmailInfo action="Test"> 
      <Subject>XYZ</Subject> 
      <Body>Data</Body> 
      <NextRunTime/> 
      <ToMailBoxes> 
       <ToMailBox>[email protected]</ToMailBox> 
      </ToMailBoxes> 
      <FromMailBoxText>[email protected]</FromMailBoxText> 
      <UserID>XYZ</UserID> 
      <Action> 
       <Info> 
        <code></code> 
       </Info> 
      </Action> 
      <ReplyTo /> 
     </EmailInfo> 
    </Request> 
</Root> 

Мне нужно получить значение action внутри EmailInfo тега, который в данном случае является «Тест ».

Я использую выше for-each цикла, так как есть много файлов, но я не могу получить значение

Как мне это сделать?

ответ

3

Не использовать регулярное выражение. Используйте XmlDocument (или другой XML-ридер). Это сделано специально для этого.

XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xmlstring); 

XmlNode errorNode = doc.DocumentElement.SelectSingleNode("/DataChunk/ResponseChunk/Errors/error"); 

EDIT: Извините, в примере XPath не работал над вами, xml. Это будет что-то вроде «/ Request/EmailInfo/@ action

+0

попробовал вышеуказанный метод, но не смог получить значение действия. Он приходит как null. – Harshit

+0

@Divisadero, конечно, XPath должен быть'/Root/Request/EmailInfo/@ action'? –

+0

Вы правы, это был просто пример для другого xml ... – Divisadero

Смежные вопросы