[PHP-users 33142] SimpleXML 特定条件?でエラー
chaplin 777
chaplin777 @ gmail.com
2008年 1月 23日 (水) 18:14:01 JST
はじめまして、寺田と申します。
POSTでXML文字列を送信し、simplexml_load_stringで
XML文字列をオブジェクトに代入したいのですが、
特定の条件下だとエラーになる問題が発生しており
是非皆様のお力をお貸し頂ければと思い投稿しました。
テスト環境は以下の通りです。
※長文・乱文で申し訳ございません。
(テストページ)
http://kyo2.heteml.jp/input.html
(サーバー環境)
PHP 5.1.6
SimpleXML(Revision: 1.151.2.22)
phpinfo.php http://kyo2.heteml.jp/phpinfo.php5
---input.html(送信フォーム)-----
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="test.php5" method="POST">
<textarea name="xml" rows="5" cols="80">
〜XML文字列〜
</textarea><BR>
<input type="submit">
</form>
</body>
</html>
---test.php5(PHPスクリプト)-----
<?php
$str = stripslashes($_POST['xml']);
$obj = simplexml_load_string($str);
if($obj == false){
echo "NG...";
}else{
echo "OK";
}
?>
以下のようなXML文字列を送信した場合は正常に動作するようです。
※「input.html」の1段目参照
<?xml version="1.0" encoding="UTF-8"?>
<Test1>
<Child1>
<Data1>Data1-1</Data1>
<Data2>Data1-2</Data2>
</Child1>
<Child2>
<sub1>clips</sub1>
</Child2>
</Test1>
以下のように改行なしで送信した場合は、エラーとなります。
※「input.html」の2段目参照
また、<Test1>や</Test1>のみを改行した場合はエラーになりません。
※「input.html」の3・4段目参照
改行なし(2段目のような状態)で送信したいのですが、
simplexml_load_string に問題があるのでしょうか?
または、何か別の原因でエラーとなるのでしょうか?
対処法、改善点などございましたらご教授頂ければ幸いです。
以上、お忙しい中恐縮ですがよろしくお願い致します。
PHP-users メーリングリストの案内