希望XML内容在线

时间:2011-08-04 05:26:42

标签: php xml

我有这种XML结构:

<?xml version="1.0" encoding="utf-8"?>
<Request>
    <RequestHeader requestType="CreateUserRequest" dateTime="2011-08-01T16:50:25.9387377+10:00" />
    <RequestBody>
        <CreateUserRequest>
            <User userId="123007" firstName="Peter" lastName="McDonald" active="true" />
        </CreateUserRequest>
    </RequestBody>
 </Request>

我希望将该结构转换为以下内容:

<?xml version="1.0" encoding="utf-8"?><Request><RequestHeader requestType="CreateUserRequest" dateTime="2011-08-01T16:50:25.9387377+10:00" /><RequestBody><CreateUserRequest><User userId="123007" firstName="Peter" lastName="McDonald" active="true" /></CreateUserRequest></RequestBody></Request>

我在PHP中尝试使用DOMDocument:

    $contents = file_get_contents('User.xml');
    $dom = new DOMDocument('1.0', 'utf-8');
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = false;
    $dom->loadXML($contents);

    echo $dom->saveXML();

但它出现了:

    <?xml version="1.0" encoding="utf-8"?>
    <Request><RequestHeader requestType="CreateUserRequest" dateTime="2011-08-01T16:50:25.9387377+10:00" /><RequestBody><CreateUserRequest><User userId="123007" firstName="Peter" lastName="McDonald" active="true" /></CreateUserRequest></RequestBody></Request>

有人可以帮助我使用正则表达式,或者可能是另一种方法来实现这一目标。

由于

1 个答案:

答案 0 :(得分:2)

如果您不关心XML的内容(例如cdata),那么就简单...

str_replace("\n",'',$xml)

..就足够了