php用正则表达式解析xml
我有一个xml文件:php用正则表达式解析xml,php,regex,xml,Php,Regex,Xml,我有一个xml文件: <set> <item> <id>1</id> <title>title1</title> </item> <item> <id>2</id> <title>title2</title> </item> <item> <id>3</id>
<set>
<item>
<id>1</id>
<title>title1</title>
</item>
<item>
<id>2</id>
<title>title2</title>
</item>
<item>
<id>3</id>
<title>title3</title>
<img>img3</img>
</item>
</set>
1.
标题1
2.
标题2
3.
标题3
img3
我只需要解析带有“img”的元素,并得到“id->img”。我使用正则表达式
preg_match_all('~<item>.*?<id>(.*?)</id>.*?<img>(.*?)</img>.*?</item>~si', $source, $result);
preg_match_all(“~.*?(.*?).*(.*?.*?).*(.*?).*si',$source,$result);
我得到了“id”=“1”和“img”=“img3”,但我需要“id”=“3”和“img”=“img3”
请帮助我使用正则表达式不要用正则表达式解析html文件。如果你想使用正则表达式,你可以试试下面的方法
'~<item>.*?<id>((?:(?!<id>).)*?)</id>(?:(?!<item>).)*<img>(.*?)</img>.*?</item>~si'
“~.*((?:(!))*?(?:(!))*(?:(!))*(.*?).*(.*?)。~si”
(?:(?!)*?
任何字符的非贪婪匹配,但不是
,零次或多次。您应该使用PHP中的XML解析器完成此任务谢谢。感谢您访问这个网站regex101.com。非常有用是的,你可以玩这个。。