2009-06-05 28 views
2

大文字小文字を区別しないように文字列値を検索する必要はありません。大文字と小文字を区別せずにノードを検索したい。 XMLは次のようになります場合:PHP xpathでノードの大文字小文字を区別しない検索を実行するにはどうすればよいですか?

<items> 
    <ITEM>My text!</ITEM> 
</items> 

私は仕事に、このようなものが必要:

$someXmlDoc->xpath("/items/item/text()"); 

現在、唯一この作品:

$someXmlDoc->xpath("/items/ITEM/text()"); 
+1

重複:http://stackoverflow.com/questions/625986/how-can-i-use-xpath-to-perform-a-case-insensitive-search-and - 答えはすでにそこにあります:) –

+1

こんにちはBjorn - 私はそれを見ましたが、それは文字列値ではなく、ノードではなく、大文字と小文字を区別しない答えのように見えました。私は理解できませんでした。 –

答えて

2

のXPath 1.0にはケースの変換はありませんphpでサポートされているように(http://jp.php.net/manual/en/class.domxpath.phpを参照)

は非常に限定された意味で以下に示すtranslate関数を使用します。注意:これはこれは奇妙であるあなたも

/items/ITEM/text() | /items/item/text() 
+0

ユニオンは動作しますが、変換は行いません。私はその答えを受け入れています。ありがとう:) –

0

以下のように労働組合を行うことができ、英語以外の文字

/items/*[translate(node(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz') = 'item']/text() 

のために動作しませんようお勧めしません。 XMLタグは大文字と小文字が区別されます(http://www.w3schools.com/xml/xml_syntax.asp)ので、<item><ITEM>は2つの異なるタグです。したがって、 "/items/item/text()"/items/ITEM/text()は2つの異なるパスです。

<items> 
    <ITEM>My text!</ITEM> 
    <item>Your text!</item> 
</items> 

「マイテキスト」と「あなたの文章は、」異なるxpath秒を持っている

0

のアカウントに同じテーマであなたのpreviousquestionsを取ると別の質問には、水没:「それはXMLでなければなりませんか?」 jsonはどうですか?次に、あなたのサーバー側のPHPスクリプトがjson_decode()とデータをデコードすることができ、あなたはネイティブのPHPの配列/ハッシュを取得します最小化バージョン

var jsondata = { 
    sender: "CATS", 
    subject: "All Your Base", 
    items: [] 
}; 
for(var i=0; i<8; i++) jsondata.items.push(i);

$.ajax({ url: " http://localhost/test.php ", type: "post", dataType: "json", data: $.toJSON(jsondata), contentType: "application/json; charset=utf-8",

にのみ2キロバイトを取るあなたは jquery-jsonを使用することができ、クライアントにJSONなどのデータをエンコードするために
、 javascriptのオブジェクト/ハッシュのjson表現に従う。
データをクライアントに送り返す場合は、 json_encode()を使用できます。あなたはPHP配列のjson表現を取得し、dataType: "json"が設定されているので、jqueryはこれらの値/プロパティを保持するネイティブJavaScriptオブジェクトを返します。

0

Jonathan Finglandの最初の亜種は私にとってもうまくいきませんでしたが、 が見つかりました。

それがあるべき

/items/*[translate(name(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz') = 'item']/text() 
関連する問題