2016-08-16 13 views
1

こんにちは、だから、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" /> 

を最初の文字を大文字にします。大文字の最初の文字と小文字

  • と分類における大文字
  • 著者で大文字、
  • ロボットで大文字、
  • 分布

    1. 言語。私は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;

    種類については、

  • +2

    神様のために、誰かがPHP –

    +0

    のxdom 2.0のライブラリをしてください。関連:http://stackoverflow.com/questions/14553547/what-is-the-best-php-dom-2-array-function –

    +0

    ありがとうロビー、それはどう関係している?私はこのカスタム関数 "xml2array()"を使用するように提案していますか? PHP Xdomの実装で大文字と小文字を区別しないという不満があります。私がこれまで考えることができる最良のアプローチは、あなたが言うことをしようとしている参照 –

    答えて

    0

    好きなところで@Robbie Averillが私に最高の暗号化された答えをくれました。あるいはRobbieの勧告を読んでいる間、私は興味深い考えを持っていました。

    xdomセレクタの代わりにPHP共通配列検索関数を使用して、ポスト内のこれらの関数の変更されたバージョンを作成するか、それらの関数を直接使用して配列内のdomを検索する方法があります。私がそれを見つけることができない場合のために関数を書くでしょう。

    +1

    http://fsockopen.com/php-programming/your-final-stop-for-php-xpath-case-insensitiveありがとう@Robbie –

    関連する問題