使用AgilityPack读取非HTML内容

时间:2016-02-13 12:30:45

标签: c# html-agility-pack

我们正在加载的服务之一就是使用纯JSON对象进行响应。我们正在使用html agility pack加载所有服务,除此之外。其他服务正在呈现脚本标记,其中包含JSON,并且它按预期工作。但是当它以非html格式出现时,我无法加载这些数据。加载的文档没有元素,Text属性是空字符串,DocumentElement的外部/内部html抛出对象null异常,innerText为空或null。

我尝试使用HttpWebRequest加载这一项服务并完成工作,但我不想仅仅因为这项服务而混合技术。

是否可以使用HtmlAgilityPack加载纯JSON数据页?

1 个答案:

答案 0 :(得分:1)

更新:

原来我误解了这个问题。

HAP的核心功能是用于解析HTML,而您的问题在于下载HTML(在这种情况下是JSON)。 HAP的var price = parseFloat($('#price').text()) || 0; //parseFloat($('#price').val()) || 0; var qty = parseInt($('input[name=quantity]').val()); var total = price * qty; $('#total').text(total); 仅提供执行此任务的基本功能,因此当您发现自己处于HtmlWeb不再有效的情况时,您很可能必须切换到其他工具。这是另一种情况:HTML Agility Pack settings

初步答案:

快速测试显示HtmlWeb返回JSON就好了:

DocumentElement.InnerText

现场演示:https://dotnetfiddle.net/nPT49L

如果这不适合您,请发布将演示此问题的示例JSON数据。