PHP XPATH:XPATH字符串中的返回字符
在xpath中查找Field42的第一个字符时遇到问题,请参见下文。有什么建议吗PHP XPATH:XPATH字符串中的返回字符,php,string,xpath,count,character,Php,String,Xpath,Count,Character,在xpath中查找Field42的第一个字符时遇到问题,请参见下文。有什么建议吗 $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) {
$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>
33
简
史密斯
您可以使用XPath的以
函数开头:
$item->xpath("/Entries/Entry[starts-with(Field42,'".$letter."')]")
如果希望所有
条目
元素以给定字符串中的字母开头,请使用:
/Entries/Entry[包含('0123456789abcdefghjjklmnopqrstuvwxyz',子字符串(,,1,1))
使用数组合并(范围(0,9),范围('a',z'))可以更轻松地创建$letters
数组。
。你的代码怎么了?有错误吗?你想要什么,它做什么?您确定您的XPath有效吗?我从未见过{0}
(但这并不意味着什么),你能发布其中一个条目记录的结构吗?@Felix-什么都没发生,$string{0}=s,但在xpath内部它不起作用。你知道有什么办法吗?我需要按字母顺序排列我的条目。@MacAnthony-需要按姓氏按字母顺序排列的基本xml结构。@Jeffrey:嗯,我打赌PHP会抛出一些错误或警告,告诉您XPath表达式无效。