2016-07-05 15 views
1

カスタム属性を持つHTMLがあり、コンポーネントPHPHtmlParserで解析しようとしています。このコンポーネントを介して作成されたプロジェクト全体。ここに与えられた問題の例があります。PHPHtmlParser getAttributeがカスタム属性で機能しない

use PHPHtmlParser\Dom; 
class Parsemydiv { 
    function parseAttr() 
    { 
     $str='<div otop="20" oleft="20" name="info"> 
      <img src="example.jpg"> 
     </div>'; 
     $dom = new Dom(); 
     $dom->loadStr($str); 
     $otop = $dom->getAttribute("otop"); 
     $name = $dom->getAttribute("name"); 
     echo "Name: " . $name . PHP_EOL; 
     echo "Top: " . $otop . PHP_EOL; 
     echo "Left: " . $oleft . PHP_EOL; 

    } 
} 

出力は次のとおりです。 名:インフォ トップ: 左:

のgetAttributeは、カスタム属性を取得することはできません。

+0

を*属性:: 'データ・OTOP = "20" のデータoleft = "20"'私の代わりにnative functionsを学ぶ示唆します –

答えて

0

PHPがこれをサポートしている場合、第三者のライブラリを使用してDOMを解析する理由は何ですか?あなたが有効なHTMLをしたい場合は、データ - を使用する必要があります

$str='<div otop="20" oleft="15" name="info"> 
     <img src="example.jpg"> 
    </div>'; 
$doc = new DOMDocument(); 
$doc->loadHTML($str); 
$div = $doc->getElementsByTagName('div')[0]; 
$otop = $div->getAttribute('otop'); 
$oleft = $div->getAttribute('oleft'); 

echo "otop=$otop, oleft=$oleft"; //otop=20, oleft=15 
関連する問題