Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#HTML敏捷包/PHP简单Dom解析器_C#_Php_Parsing_Xpath - Fatal编程技术网

C#HTML敏捷包/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

我有一个使用简单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->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非常有用