XML使用XPath表达式获取单元格的值
本文关键字:单元格 获取 表达式 使用 XPath XML | 更新日期: 2023-09-27 18:08:54
我试图从使用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);
}
对于你的代码,我认为你想使用
XmlNodeList tds = xmlNode.SelectNodes("ns:td[normalize-space()]", nsmgr);
查找被选为xmlNode
的tr
的任何非空td
子元素。