无法在 c# 中使用 html agility pack xpath 从网页获取 Innertexts

Cant get Innertexts from webpage using html agility pack xpath in c#

这是我的代码人员。 我正在尝试获取跨度内的文本并将其存储在本地。我正在使用 html 敏捷包并尝试使用 xpath 检索文本,但节点不检索任何内容并显示为空。

这是我试图从中获取文本的页面:https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=15030267855_SDS150309FC7 特别是“Denominación o razón social”文本。

namespace ObtencionDatosSatBeta
{
    public partial class Form1 : Form
    {
        DataTable table;
        public Form1()
        {
            InitializeComponent();
            
        }
        private void InitTable()
        {
            table = new DataTable("tabladedatosTable");
            table.Columns.Add("Variable", typeof(string));
            table.Columns.Add("Contenido", typeof(string));
            //table.Rows.Add("Super Mario 64", "84%");
            tabladedatos.DataSource = table;
        }

        private async void Form1_Load(object sender, EventArgs e)
        {
            InitTable();
            HtmlWeb web = new HtmlWeb();
            var doc = await Task.Factory.StartNew(() => web.Load("https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=15030267855_SDS150309FC7"));
            var nodes = doc.DocumentNode.SelectNodes("//*[@id=\"ubicacionForm: j_idt12:0:j_idt13: j_idt17_data\"]//tr//td//span");
            var innerTexts = nodes.Select(node => node.InnerText);
            
        }

        private void tabladedatos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

有什么想法吗?

var nodes = doc.DocumentNode.SelectNodes("//*[@id=\"ubicacionForm: j_idt12:0:j_idt13: j_idt17_data\"]//tr//td//span");

上面的代码行显示为空。

使用此 Xpath 获取具有以下 ID 的元素下的第一个跨度:ubicacionForm:j_idt10:0:j_idt11:j_idt14_data

(//*[@id='ubicacionForm:j_idt10:0:j_idt11:j_idt14_data']//span)[1]

您可以 select 通过复制 chrome 中的 HTML 元素,使用多种不同的方式 select (Ctrl + Option + J)

然后将 HTML 粘贴到 Xpather 中,您可以在其中使用 Xpath。 Xpather.com