2015-08-19 5 views
0

Im пытается получить значения td ячейки в ячейке таблицы без имени/идентификатора из строки таблицы с использованием выражения XPath, но не смог ее решить. Могли ли читатели сообщить мне, где я ошибаюсь?XML получить значение td ячейки с помощью выражения XPath

 XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load("C:\\trial.html"); 

    XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable); 
    nsmgr.AddNamespace("ns", "http://www.w3.org/1999/xhtml"); 

    XmlNode root = xmlDoc.DocumentElement; 
    System.Xml.XmlNodeList rowNodes = root.SelectNodes(@"ns:body/ns:div[@id='Index']/ns:div[@class='container']/ns:div[@class='maintext']/ns:table[@class='a_table']/ns:tr[@class='a_table_row']", nsmgr); 

    foreach (XmlNode xmlNode in rowNodes) 
    { 
     // Is there a way to get nodes with td values(non-empty)? My attempts 
     // seem to be wrong 
     //System.Xml.XmlNodeList tds = xmlNode.SelectNodes("//td[text()]", nsmgr); 
     //System.Xml.XmlNodeList tds = xmlNode.SelectNodes("//td[contains(text(), .)]", nsmgr); 
     if (xmlNode.ChildNodes.Count == 3) 
      nodes.Add(xmlNode); 

    } 

ответ

0

С вашим кодом, я думаю, что вы хотите использовать

XmlNodeList tds = xmlNode.SelectNodes("ns:td[normalize-space()]", nsmgr); 

найти любые непустые td дочерних элементы tr выбранных в качестве xmlNode.

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