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);
    }

XML使用XPath表达式获取单元格的值

对于你的代码,我认为你想使用

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

查找被选为xmlNodetr的任何非空td子元素。