我尝试使用XPath表达式从表行中获取没有名称/ id的表单元格中的td单元格值但是无法解析它。读者可以告诉我哪里错了吗?
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 :(得分:0)
使用您的代码我认为您想使用
XmlNodeList tds = xmlNode.SelectNodes("ns:td[normalize-space()]", nsmgr);
查找选定为td
的{{1}}的任何非空tr
子元素。