用于在文本中查找xml标记的正则表达式

时间:2011-08-16 10:22:13

标签: regex

我正在尝试编写一个正则表达式,以便在以下xml中找到一个项目(<book>)。有人可以帮我这个吗?

示例:

    <books>
     <book> 
        <author>data</author>
        <name>data</name>
     </book>
     <book> 
       <author>data</author>
       <name>data</name>
     </book>
    </books>

结果:

    <book><author>data</author><name>data</name></book>
    <book><author>data</author><name>data</name></book>

2 个答案:

答案 0 :(得分:2)

<?php

$xml = simplexml_load_string('<?xml version="1.0"?>
    <books>
        <book>
            <author>data</author>
            <name>data</name>
        </book>
        <book>
            <author>data</author>
            <name>data</name>
        </book>
    </books>', 'SimpleXMLElement', LIBXML_NOBLANKS);

$output = '';
foreach($xml as $i){
    $output .= $i->asXML();
}

var_dump($output);

答案 1 :(得分:0)

您可以使用null替换以下正则表达式:

((?<!</book>) *\r\n *|(?<=^|\r\n).*</?books>\r\n)