`
desert3
  • 浏览: 2156095 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

xml 字符串和xml Document相互转换、xml Document内容输出到http response

    博客分类:
  • Java
 
阅读更多
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class Test {

	/**
	 * @param args
	 * @throws ParserConfigurationException
	 * @throws IOException
	 * @throws SAXException
	 */
	public static void main(String[] args) {
		try {
			// 使用最原始的javax.xml.parsers,标准的jdk api
			// 字符串转XML
			String xmlStr = "<xml>content</xml>";
			StringReader sr = new StringReader(xmlStr);
			InputSource is = new InputSource(sr);
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			org.w3c.dom.Document doc = builder.parse(is);

			// XML转字符串
			TransformerFactory tf = TransformerFactory.newInstance();
			Transformer t = tf.newTransformer();
			// 编码设置
			t.setOutputProperty("encoding", "GB2312");
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			t.transform(new DOMSource(doc), new StreamResult(bos));
			xmlStr = bos.toString();

			// 把org.w3c.dom.Document doc的xml内容输出到http response
            response.setContentType("text/xml");
            response.setHeader("Pragma", "No-cache");  
            response.setHeader("Cache-Control", "no-cache");  
            response.setDateHeader("Expires", 1);  
	    	
	    	DOMSource source = new DOMSource(doc);
	    	StreamResult result = new StreamResult(response.getOutputStream());
	    	
	    	t.transform(source, result);
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		
		
		// 使用dom4j后程序变得更简单
		// 字符串转XML
		String xmlStr1 = "<xml>content1</xml>";
		org.dom4j.Document.Document document = DocumentHelper.parseText(xmlStr1);

		// XML转字符串 
		org.dom4j.Document.Document document = ...;
		String text = document.asXML();
	}
}

当xmlStr的内容为aa时,系统会报错误: [Fatal Error] :1:1: Content is not allowed in prolog.
当xmlStr的内容为<xml>content</xml>bb时,系统会报错误[Fatal Error] :1:19: Content is not allowed in trailing section.
都是提示:m:n,m行n列所在位置的内容不是正常的xml内容

参考:XML字符串和XML DOCUMENT的相互转换(
分享到:
评论

相关推荐

    xml字符串转化Dataset

    ### XML字符串转换为Dataset知识点详解 #### 一、XML与数据处理 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记数据的标准格式,它允许开发者定义自己的标签,因此非常灵活,适用于多种数据...

    javascript加载xml文件和xml字符串的类

    本篇文章将深入探讨如何使用JavaScript加载XML文件和XML字符串,主要涉及DOM和XMLHttpRequest两种方法。 **1. DOM(Document Object Model)方式加载XML** DOM是一种标准,它允许程序和脚本动态更新、添加、删除和...

    android访问web应用并返回xml字符串

    本文将深入探讨如何使用Android通过HTTP GET方法提交数据至Web服务,并接收返回的XML字符串进行解析和处理。我们将围绕以下三个核心概念展开:Android网络请求、HTTP GET方法和XML数据处理。 首先,Android提供了...

    AjaxWithServlet解析xm字符串及xml文件

    5. 返回响应:Servlet将处理结果包装成XML字符串,然后在HttpServletResponse对象中设置状态码和内容类型,最后调用`response.getWriter().write()`将结果写入响应流。 6. 客户端回调:当响应完成,JavaScript的回调...

    JS解析xml文件为字符串

    如果需要将处理过的DOM树再次转换为XML字符串,可以使用`XMLSerializer`: ```javascript var serializedXML = new XMLSerializer().serializeToString(xmlDoc); ``` 5. **错误处理** 在处理XML时,需要考虑...

    xml操作xml操作xml操作xml操作xml操作

    通过`XmlDocument`的`LoadXml`方法,可以将XML字符串转换为可操作的对象。例如: ```csharp XmlDocument Xml = new XmlDocument(); Xml.LoadXml(ReqData); ``` 这里的`ReqData`变量包含了XML文档的字符串形式。...

    java http 发送xml报文(java发送xml报文实例+参数)

    写入XML字符串到HTTP连接: ```java try(OutputStream os = connection.getOutputStream()) { os.write(xmlString.getBytes(StandardCharsets.UTF_8)); } ``` 4. **处理响应** 发送完XML后,读取服务器返回...

    php遍历解析xml字符串的方法

    本实例将详细介绍如何使用PHP的SimpleXMLElement类来遍历和解析XML字符串。 首先,XML(eXtensible Markup Language)是一种用于标记数据的语言,它允许自定义标签来描述数据结构。XML字符串如下: ```xml &lt;?xml ...

    java 通过模板生成 xml,发送报文

    3. **转换为字符串**:为了发送或保存,我们需要将`Document`对象转换为字符串,这通常通过`TransformerFactory`和`Transformer`实现。 ```java TransformerFactory transformerFactory = TransformerFactory.new...

    struts2如何生成XML文件

    2. **将XML字符串转换为Document对象**:定义了一个`xmlString2Document()`方法,该方法接收一个XML字符串,并将其转换为`Document`对象,以便于后续处理。 ```java private Document xmlString2Document(String ...

    Laravel开发-laravel-xml

    此外,如果你需要处理XML的解析和验证,可以使用`simplexml_load_string`或`DOMDocument::loadXML`来解析XML字符串,`DOMDocument::schemaValidate`来进行XML Schema验证。 总之,Laravel提供了基本的XML响应能力,...

    xml.rar_CSharp xml_CSharp xml string

    在C#中,处理XML字符串可以方便地实现数据解析、验证和序列化。下面我们将深入探讨如何在C#中以字符串形式读取XML以及如何判断网站的有效性。 首先,让我们关注如何在C#中读取XML字符串。C#提供了System.Xml命名...

    asp自动生成xml实例 代码

    而保存到文件,则可以先将XML字符串保存到变量,然后写入文件系统: ```vbscript xmlString = xmlDoc.XML Open "output.xml" For Output As #1 Write #1, xmlString Close #1 ``` 这个实例中的代码已经过...

    利用XSLT把ADO记录集转换成XML

    本文介绍了三种将ADO记录集转换为XML格式的方法:使用XML DOM构建XML节点树、直接生成XML字符串以及使用XSLT进行转换。每种方法都有其适用场景,选择哪种方法取决于具体的应用需求和性能考虑。在实际开发中,应根据...

    Ext解析XML实例

    `loadXML`函数接收一个XML字符串作为参数,并尝试创建一个XML文档对象模型(DOM)。在IE浏览器中,通过`ActiveXObject`实现;对于其他浏览器,则使用`DOMParser`或`document.implementation.createDocument`方法。 ...

    JavaScript获取XML文件的数据

    - **DOMParser**:JavaScript中的DOMParser对象可以将XML字符串转换为DOM对象,便于操作。如上面的fetch示例所示,我们使用`parseFromString`方法解析XML字符串。 ```javascript var parser = new DOMParser(); ...

    html-把XML文件加载到table

    在JavaScript中,我们可以使用`DOMParser`对象将XML字符串转换为DOM(Document Object Model)树。DOM是XML或HTML文档的一种结构化表示,允许我们通过JavaScript来操作文档的各种元素。 解析完成后,我们可以遍历...

    一个在线解析XML的示例

    在JavaScript中,可以使用`XMLHttpRequest`或`fetch` API获取XML数据,然后利用`DOMParser`解析XML字符串。以下是一个简单的示例代码片段: ```javascript fetch('http://rss.sina.com.cn/news/china/focus15.xml')...

    ajax中使用xml传递数据

    在DWR中,当需要发送XML数据到服务器时,可以创建一个XML字符串,然后作为参数传递给DWR的远程方法。同样,服务器响应也可以是XML格式,DWR会自动将其转换为JavaScript对象,以便在客户端处理。 3. **客户端XML...

    Javascript操作XML和HTML

    1. **XML解析**:JavaScript可以使用`DOMParser`对象将XML字符串转换为DOM树。例如: ```javascript let parser = new DOMParser(); let xmlDoc = parser.parseFromString(xmlString, "text/xml"); ``` 2. **...

Global site tag (gtag.js) - Google Analytics