php输出xml必须header的解决方法

本文为大家讲解的是php输出xml必须header的解决方法,以实例形式讲述了php输出xml必须header的情况,是很多php初学者都容易犯的错误,需要的朋友可以参考下

问题描述:

最近在做一个xml输出时发现我们直接使用echo输入的xml文档会提示Error: Object # has no method ‘load'错误的了,后改用了header()输出xml头文件就解决了,下面记录一下。

解决方法:

由于xml长的和txt文件太相似,所以导致我总和txt混为一谈。

现来看看如下代码:

echo '<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.adminso.com/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>
';
exit;


就是这么一段代码,死活输出的xml无法通过xml验证。
提示错误 Error: Object # has no method ‘load'
最后查了半天都和直接放在1.xml里的文件一样
具体代码如下

 

<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.jb51.net/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>


加个header就好了。 折腾了好几个小时。。。。。
具体代码如下

 

<?php
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.jb51.net/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>
';
exit;


原文地址:http://www.adminso.com/articles/view/92080
(站长搜索- http://www.adminso.com/yuanma -源码下载,更新快,最专业的网站源码下载!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用SAXWriter输出XML的步骤如下: 1. 创建一个 SAXParserFactory 实例并且用它来创建一个 SAXParser 对象。 2. 创建一个 XMLWriter 的子类实例。 3. 创建一个 ContentHandler 的子类实例,并将 XMLWriter 子类实例作为参数传入。 4. 调用 XMLWriter 子类实例的 startDocument()、startElement()、characters()、endElement() 和 endDocument() 方法输出 XML 文件。 下面是一个使用 SAXWriter 输出 XML 文件的示例代码: ```java import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.io.*; public class WriteXMLWithSAX { public static void main(String[] args) throws Exception { // 创建 SAXParserFactory 和 SAXParser 对象 SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); // 创建 XMLWriter 的子类实例 MyXMLWriter writer = new MyXMLWriter(); // 创建 ContentHandler 的子类实例,并将 XMLWriter 子类实例作为参数传入 MyHandler handler = new MyHandler(writer); // 调用 XMLWriter 子类实例的 startDocument() 方法输出 XML 文件头 writer.startDocument(); // 调用 ContentHandler 的子类实例的 startElement()、characters() 和 endElement() 方法输出 XML 文件内容 handler.startElement("", "students", "students", null); handler.startElement("", "student", "student", null); handler.characters("Tom".toCharArray(), 0, 3); handler.endElement("", "student", "student"); handler.startElement("", "student", "student", null); handler.characters("Jerry".toCharArray(), 0, 5); handler.endElement("", "student", "student"); handler.startElement("", "student", "student", null); handler.characters("Mike".toCharArray(), 0, 4); handler.endElement("", "student", "student"); handler.endElement("", "students", "students"); // 调用 XMLWriter 子类实例的 endDocument() 方法输出 XML 文件结尾 writer.endDocument(); } } class MyHandler extends DefaultHandler { private XMLWriter writer; public MyHandler(XMLWriter writer) { this.writer = writer; } // 重写 startElement() 方法 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { writer.startElement(uri, localName, qName, attributes); } // 重写 characters() 方法 public void characters(char[] ch, int start, int length) throws SAXException { writer.characters(ch, start, length); } // 重写 endElement() 方法 public void endElement(String uri, String localName, String qName) throws SAXException { writer.endElement(uri, localName, qName); } } class MyXMLWriter extends XMLWriter { public MyXMLWriter() throws IOException { super(new FileWriter("students.xml")); } } ``` 这个示例程序会输出以下格式的 XML 文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <students> <student>Tom</student> <student>Jerry</student> <student>Mike</student> </students> ``` 注意:这个示例程序中,MyHandler 类继承了 DefaultHandler 类,并且重写了其中的方法,这些方法会在 SAX 解析过程中被调用。在这些方法中,我们可以根据需要对 XML 文件进行处理。MyXMLWriter 类继承了 XMLWriter 类,并且重写了其中的构造方法,用来指定输出 XML 文件的文件名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值