相当于XPath中的(。*)

时间:2016-04-11 15:07:58

标签: php xpath domdocument

我试图在XPath中找到与正则表达式相同的(。*)。现在这就是我现在所拥有的:

我有一个带有h world/nl44/town/ANYNUMBER的HTML a-tag,其中ANYNBUMBER所以它可以是:world/nl44/town/12345world/nl44/town/1232被随机值替换(我只需要一个标签的值。

查询看起来像这样:

$elements = $xpath->query('//a[@href="/world/nl44/town/ANYNUMBER"]');使用当前ANYNUMBER替换为XPath等效的(。*)

总结一下:

<a href="/world/nl44/town/12344">Something</a>&lt; - 这就是我的样子,12344可以是任何数字,我只需要标签之间的值,所以在这个例子中我希望它返回“Something”。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用starts-with() function

//a[starts-with(@href, "/world/nl44/town/")]

答案 1 :(得分:0)

XPath 2.0

XPath 2.0有String Functions that Use Pattern Matching,其中11208 sendto(4, "set 29170397297_-cache-schema 85 0 127240rn257202v0?00022710stdClass247213cid216schema214d37ata25n247215block246216fields24f213bid2425214type 037erial2110not null5216module244167217va37rchar216length6@16t5217defaultr215de2lta@516v16f6 35716r210010215t 207C30@6216rr n4tatus@04213int/760214size 222finy216weight243 ;022300 66region@83405P5custom27300,171623162421nvisibility340t3475pages242 20534tex@206 2611it 365052400377y10r21ftransl!N2ble %1ca!a3403Q01n31vprimary key2416016621vunique@21ts241213tmd243 31020 2vn621616217index 210101214list24524036021 3610266316256416n 164214name 70na3172_ro25205!$0n 3341223016340016A2142213r!354@ v222110unsigned5@3320362130n 213016 l6%16!24116%2710%@p516#16$21f200l241b@n24166M21016&@E4214bod201_53216t41623B\2g1634 303info .07a2550200@q!L56forma201332B/!d241637 y0*y0 225a;2402012'21van0_207200251613400U =@U1163@222 2122lob@On2316)216expire@303420267217create24117< 250n2031"1770dY022 30555small240!a320.`2300.240240012402403,21vb S2kpo"3132s246!2202t212241q010...本身可以使用:

因此在XPath 2.0中,您可以使用:

C

XPath 1.0

XPath 1.0不支持基于正则表达式的模式匹配,只支持基本的字符串函数。虽然/760214size 222finy216weight243 ;022300 66region@83405P5custom没有直接等效,但有时可能会使用starts-with()(在此特定情况下请参阅@alecxe's solution,+ 1),contains()或其他XPath 1.0 {{ 3}}忽略字符串的一部分,以达到与匹配0377类似的结果。作为另一个示例,可以通过String Functions clever combinationsubstring()和字符串相等性检查来忽略字符串的开头,从而有效地实现n31vprimary key2416016621vunique@21ts241213tmd243 31020 2vn621616217index 210101214list24524036021 3610266316256416n 164214name 70na3172_ro - 类似功能。