こんにちは、だから、PHP、XDOM、PHPの名前空間と小文字
、私はPHPとXDOMで働いている、と私はこれらの2式を持っている:もちろん
$parsed_node->meta->author = $node->xdom->query('//meta[@name="author"]/@content')->item(0)->nodeValue;
$parsed_node->meta->language = $node->xdom->query('//meta[@name="language"]/@content')->item(0)->nodeValue;
、それらの両方をウェブサイトの作者がメタタグに大文字を使用することを決断していない限り、完璧に動作します。今
、それはいくつかのウェブサイトに来るとき、あなたはこのような表現表示されます:あなたが見ることができるように、我々はいくつかの大文字で名前、小文字でいくつかの、そのうちのいくつかを持っているので、
<meta name="LANGUAGE" content="es" />
<meta name="DISTRIBUTION" content="Global" />
<meta name="ROBOTS" content="all" />
<meta name="author" content="Clarin.com" />
<meta name="Classification" content="noticias, información, videos, diario, newspaper" />
を最初の文字を大文字にします。大文字の最初の文字と小文字
- 言語。私はPHPを使用していますとXPath 2.0のようなものがありませんよう
だから、私はPHPの関数インクルードするよりも、他のオプションはありませんでした:
$node->xdom->registerNamespace('php', 'http://php.net/xpath');
$node->xdom->registerPhpFunctions();
をそして、我々はこのような式を使用することができます:ここでは
$parsed_node->meta->language = $node->xdom->query("//meta[contains(php:functionString('strtolower', @name), 'language')]/@content")->item(0)->nodeValue;
は私の2つの質問
は誰KNを行い- ています私はここで使うことができるより小さな表現をしていますか?
大文字と小文字を区別しないように同じ表現をどのように適用しますか?
$ parsed_node-> title = $ node-> xdom-> query( '// title') - > item(0) - > nodeValue;
種類については、
神様のために、誰かがPHP –
のxdom 2.0のライブラリをしてください。関連:http://stackoverflow.com/questions/14553547/what-is-the-best-php-dom-2-array-function –
ありがとうロビー、それはどう関係している?私はこのカスタム関数 "xml2array()"を使用するように提案していますか? PHP Xdomの実装で大文字と小文字を区別しないという不満があります。私がこれまで考えることができる最良のアプローチは、あなたが言うことをしようとしている参照 –