用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3668|回复: 5
收起左侧

[HELP] CI输出wml失败

[复制链接]
发表于 2010-5-20 14:28:56 | 显示全部楼层 |阅读模式
看提示好像第一行有一个空格。但不知道怎么产生的

XML 解析失败

XML 解析失败: 语法错误 (行号: 1, 字符: 1)

将文档重解析为 HTML
错误:
XML declaration not at beginning of document

规范:
http://www.w3.org/TR/REC-xml/

  1:  <?xml version="1.0"  encoding="utf-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml> <card> <p>20100422</wml>

控制器
<?php
class Test extends Controller{
        function __construct(){
                parent::Controller();
        }
        function index(){
                header("Content-type: text/vnd.wap.wml; charset=UTF8");
                $params['data'] = '20100422';
                $this->load->view('header');
                $this->load->view("test",$params);
                $this->load->view('footer');
        }
}
?>
视图:header.php
<?php
echo "<?xml version=\"1.0\"  encoding=\"utf-8\"?><!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">";
echo ("<wml> <card> <p>");
?>

footer.php
<?php
echo "</wml>";
?>
发表于 2010-5-20 16:33:50 | 显示全部楼层
本帖最后由 ihymk 于 2010-5-20 16:36 编辑

用output->set_header设置头信息,或者直接header。
CI内部编码大部分是无编码类型,不能很明确的告诉客户端要接受的编码为utf-8,所以,这个地方容易出问题,你需要告诉浏览器,你的编码类型为utf8模式,这要在浏览器接受正文信息直接处理。所以,你需要通过header或者CI内置set_header处理这个操作。
 楼主| 发表于 2010-5-20 16:45:10 | 显示全部楼层
我想我用了header了
 楼主| 发表于 2010-5-20 16:46:56 | 显示全部楼层
用的KNDB session.CI1.7.2  下面代码也是报错。好心人帮忙看下问题啊
<?php
class User extends Controller{
        function index(){
                $this->output->set_header("Content-type: text/vnd.wap.wml; charset=gb2312");
                $this->load->database();
                $this->load->library("session");
                $this->session->set_userdata("name","user1");
                echo "<?xml version=\"1.0\"  encoding=\"gb2312\"?><!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">";
                echo ("<wml>");
                echo "<card>";
                echo "<a href='user/login'>登录</a>";
                echo "</card></wml>";
        }
}
?>

用opera浏览报错
XML 解析失败

XML 解析失败: 语法错误 (行号: 1, 字符: 1)

将文档重解析为 HTML
错误:
XML declaration not at beginning of document

规范:
http://www.w3.org/TR/REC-xml/

  1:  <?xml version="1.0"  encoding="gb2312"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card><a href='user/login'>登录</a></card></wml>
 楼主| 发表于 2010-5-20 17:06:18 | 显示全部楼层
是CI的问题吗?
发表于 2012-9-11 20:51:26 | 显示全部楼层
<?php header("Content-type: text/vnd.wap.wml"); ?>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
    <head>
    <mate http-equiv="Cache-control" />
</head>
<card id="main" title="hello world">
    <p align="center">
        this is test!
    </p>
</card>
</wml>

本版积分规则