C#HTML敏捷包/PHP简单Dom解析器
我有一个使用简单dom解析器的PHP工作语句,我想使用HTML Agility Pack将其转换为C 我真的很挣扎,甚至在接近工作的时候也没能得到任何东西 下面是我正在处理的HTML:www.amazon.com/gp/offer-listing/B002UYSHMM/ 下面是我想要转换为C的PHP DOM解析器代码:C#HTML敏捷包/PHP简单Dom解析器,c#,php,parsing,xpath,C#,Php,Parsing,Xpath,我有一个使用简单dom解析器的PHP工作语句,我想使用HTML Agility Pack将其转换为C 我真的很挣扎,甚至在接近工作的时候也没能得到任何东西 下面是我正在处理的HTML:www.amazon.com/gp/offer-listing/B002UYSHMM/ 下面是我想要转换为C的PHP DOM解析器代码: foreach($html->find('div.resultsset table tbody.result tr')作为$article) { 如果($article->fi
foreach($html->find('div.resultsset table tbody.result tr')作为$article)
{
如果($article->find('span.price',0))
{
//零售
$item[$retail.$i++]=$article->find('span.price',0)->纯文本;
//索德比
如果($article->find('img',0)->getAttribute('alt')“”)
{
$item[$soldby.$j++]=$article->find('ul.sellerInformation img',0)->getAttribute('alt');
}
其他的
{
$item[$soldby.$j++]=$article->find('ul.sellerInformation li a b',0)->纯文本;
}
$ret['SellerInfo']=$item;
}
}
如果有人能帮忙,我会非常感激 我从未将CSS选择器与HTMLAgilityPack一起使用,而是使用xpath(其工作原理类似,但语法不同),其工作原理如下:
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(url);
doc.DocumentNode.SelectSingleNode(@"id('content')/div/div[1]/");
真的是这样。在不使用SelectSingleNode()时,可以使用LINQ处理集合。因此,以您的例子并付诸实践:
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(url);
var price = Decimal.Parse(doc.DocumentNode.SelectSingleNode(@"id('price')").InnerText);
// etc...
如果您需要获取特定dom元素的XPath的帮助,有一个很棒的firefox插件,名为,它可以通过右键单击立即获得任何dom元素的XPath。它对我使用HTMLAgilityPack非常有用。我从未将CSS选择器用于HTMLAgilityPack,而是使用xpath(其工作原理类似,但语法不同),它的工作原理如下:
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(url);
doc.DocumentNode.SelectSingleNode(@"id('content')/div/div[1]/");
真的是这样。在不使用SelectSingleNode()时,可以使用LINQ处理集合。因此,以您的例子并付诸实践:
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(url);
var price = Decimal.Parse(doc.DocumentNode.SelectSingleNode(@"id('price')").InnerText);
// etc...
如果您需要获取特定dom元素的XPath的帮助,有一个很棒的firefox插件,名为,它可以通过右键单击立即获得任何dom元素的XPath。它对我使用HTMLAgilityPack非常有用