Nasıl PHP xpath bir düğüm için bir harf duyarsız arama yaparım?

2 Cevap php

Ben dize değeri için bir arama duyarsız olmak istemiyorum. Ben küçük harf duyarlılığı dikkate almadan düğüm için bir arama yapmak istiyorum. XML bu gibi görünüyorsa:

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

Ben iş için böyle bir şey gerekir:

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

Şu anda, sadece bu işleri:

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

2 Cevap

Php tarafından desteklenen XPath 1.0 hiçbir durumda dönüşüm (bkz. http://jp.php.net/manual/en/class.domxpath.php) olduğunu

Eğer could çok sınırlı anlamda aşağıda gösterilen çevirmek işlevini kullanın. not: bu non-İngilizce karakterleri için çalışmaz önerilmez

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

Ayrıca aşağıdaki gibi bir birlik yapabilirdi

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

Bu çok tuhaf. XML etiketleri harfe duyarlı (http://www.w3schools.com/xml/xml_syntax.asp), böylece <item> ve <ITEM> iki farklı etiket vardır. Böylece. "/items/item/text()" ve /items/ITEM/text() iki farklı yolları vardır.

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

"Benim metin" ve "Metin" olan farklı xpath s