我有<h2>
块,但没有属性。之后转到<p>
没有属性的块。
这种结构看起来像这样:
<h2></h2>
<p></p>
<p></p>
<p></p>
<h2></h2>
<p></p>
<p></p>
<h2></h2>
<p></p>
我正在使用Php Simple HTML DOM Parser。我希望从<h2>
块获取数据,之后将所有<p>
转换为另一个<h2>
,依此类推。
但是所有<h2>
都必须连接到跟随它们的<p>
。我想使用key => value
(示例<h2> => <p>,<p>,...
和另一个<h2>
),但我不知道该怎么做。
另外,我知道next_sibling()
,但不知道如何在循环中使用它。我做了两个变量,第一个是<h2>
,第二个是<p>
。我认为这对我的目标很有用。这是代码:
$test = file_get_html('url');
foreach($test->find('h2') as $test2) {
echo $test2 . '<br>';
foreach($test->find('p') as $test3) {
echo $test3 .'<br>';
}
}
答案 0 :(得分:1)
目前还不是很清楚你在寻找什么,但这里有一个让你入门的想法:
List<Label[]> labels;//your labels
Label[] firstArray=labels[0];
Label[] secondArray=labels[1];
...
Label firstLabelInFirstArray=firstArray[0]; //get first label
Label secondLabelInFirstArray=firstArray[1]; //get second label
firstLabelInFirstArray.Visible=true; //In Windows Forms
firstLabelInFirstArray.Visibility=Visibility.Hidden; //In WPF
答案 1 :(得分:0)
在这里回答我的问题。我希望它可以帮助某人!)
`foreach ($html->find('.div') as $div)
{
if(!$next=$div->next_sibling()) continue;
if($next->tag==='h2')
{
$h2 =$next;
echo $h2;
while ($h2 = $h2->next_sibling())
{
if(!$h2->tag=='p') break;
{
$p =$h2;
echo $p;
}
}
while ($h2 = $h2->next_sibling())
{
if(!$h2->tag=='table') break;
{
$tab =$h2;
echo $tab;
}
}
while ($h2 = $h2->next_sibling())
{
if(!$h2->tag=='ul') break;
{
$ul =$h2;
echo $ul;
}
}
}
else continue;
}`