PHP XPATH: вернуть символ в строке xpath - PullRequest
0 голосов
/ 11 марта 2011

Не удается найти первый символ Field42 внутри xpath, см. Ниже. Есть предложения?

$letters = split(',','0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z');
foreach($letters AS $letter) {
if(count($item->xpath("/Entries/Entry[Field42{0}='".$letter."']")) > 0) {
        $entries = $item->xpath("/Entries/Entry[Field42{0}='".$letter."']"); ?>

Структура XML

<Entries>
<Entry>
    <EntryId>33</EntryId>
    <Field71/>
    <Field41>Jane</Field41>
    <Field42>Smith</Field42>

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Вы можете использовать функцию XPath starts-with:

$item->xpath("/Entries/Entry[starts-with(Field42,'".$letter."')]")
0 голосов
/ 11 марта 2011

Если вы хотите, чтобы все Entry элементы начинались с буквы из заданной строки, используйте:

/Entries/Entry[contains('0123456789abcdefghijklmnopqrstuvwxyz',substring(.,1,1))]

...