我的问题非常简单。 假设我有多个'a':
<td class="autoindex_td">
<a class="autoindex_a snap_shots" href="http://example.com.html">
<img height="16" width="16" src="http://exmple.com/download/index_icons/winxp/sound.png" alt="[mp3]"></img>
<strong>
05 - example.mp3
</strong>
</a>
</td>
我只想找到有两个班级的'强'。在这里我尝试了:
foreach ($html->find('a[class=autoindex_a , class=snap_shots]') as $link) {
if(isset($link)){
foreach($link->find('strong') as $tag)
{
$name = $tag->plaintext ;
$hiren[] = $name ;
}
}
}
但是我得到了null
。那我如何同时选择两个班级呢?
答案 0 :(得分:9)
刚刚找到了一条路:
foreach ($html->find('a[class=autoindex_a snap_shots]') as $link) {
if(isset($link)){
foreach($link->find('strong') as $tag)
{
$name = $tag->plaintext ;
$hiren[] = $name ;
}
}
}
答案 1 :(得分:1)
为什么不DOMDocument
上课?
<?php
$html=' <td class="autoindex_td">
<a class="autoindex_a snap_shots" href="http://example.com.html">
<img height="16" width="16" src="http://exmple.com/download/index_icons/winxp/sound.png" alt="[mp3]"></img>
<strong>
05 - example.mp3
</strong>
</a>
</td>';
$dom = new DOMDocument;
@$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $tag) {
if ($tag->getAttribute('class') === 'autoindex_a snap_shots') {
foreach($tag->getElementsByTagName('strong') as $strongTag)
{
echo $strongTag->nodeValue; //"prints" 05 - example.mp3
}
}
}
答案 2 :(得分:1)
您需要将属性查找器分隔为:
$html->find("a[class='autoindex_a'][class='snap_shots']")
或者,使用点.
分隔符分隔类:
$html->find('a.autoindex_a.snap_shots')
答案 3 :(得分:0)
这是一次选择符合所有这些条件的元素的方法。它返回适合所有条件的元素数组或零元素数组。 它接受元素数组或单个元素。 该标准需要用逗号分隔,它将返回适合所有这些标准的元素。 用法示例
public class MainFragment extends Fragment{
public static MainFragment newInstance(Bundle args){
MainFragment fragment = new MainFragment();
fragment.setArguments(args);
return fragment;
}
//... Class overrides here onCreateView etc..
// define insertSlider method
public void insertSlider(ImageSlider slider){
imageSliderViewModel.insert(slider);
Toast.makeText(getActivity(), "Done Insert"+slider, Toast.LENGTH_SHORT).show();
}