多くのテキストを含むデータベース行がありますが、特定のテキストのみを選択したいだけです。PHP要素の前後のテキストを削除します
例:
<strong>Lorem</strong>
<ul>
<li>Lorem</li>
<li>Ipsum</li>
</ul>
<strong>Ipsum</strong>
<ul>
<li>Ipsum</li>
<li>Lorem</li>
</ul>
<strong>Third</strong>
<ul>
<li>Some words</li>
<li>More words</li>
</ul>
は、私が唯一のul要素とのイプサムの一部を選択し、残りを無視したいです。私はDOMXPath->evaluate('//text()[contains()]')
と仕事をしようとしていたが、これは唯一の要素ではなく、ipsumのテキストを示しています。
EDIT: 私が望む正確な出力は次のようになります。
<strong>Ipsum</strong>
<ul>
<li>Ipsum</li>
<li>Lorem</li>
</ul>
私が試したコード(私はより多くのを試してみましたが、これが最後の結果である):
$d = new DOMDocument;
$d->loadHTML($text);
$x = new DOMXPath($d);
$result = $x->evaluate("//text()[contains(., 'Ipsum')]");
$result->item(0)->nodeValue;
これが唯一のイプサムを示しリスト要素ではなくテキストです。
正確な出力を追加して質問を編集できますか? –
そしてコードはあなたがそのファイルを使用したと言っています – Andreas
"Ipsum part"とは何ですか?それは常に "Ipsum"の正確な単語で強くなっているのですか、それとも常に3つの文字列タグの2番目ですか? – Andreas