如何在JavaScript中读取XML服务器响应
How to read XML server response in JavaScript?
我在一个web项目上工作,此时我需要将硬编码的xml从Java传递到JavaScript以解析该xml;问题是我不知道该怎么做。如下所示,我的xml存储在一个String变量中,所以我需要将这个变量传递给JavaScript。我使用tomcat作为服务器。
Java代码-创建xml:
@Path("/getXml")
@GET
@Produces(MediaType.TEXT_XML)
@Consumes(MediaType.TEXT_PLAIN)
public String getXml(@Context HttpServletRequest request) throws TransformerConfigurationException, TransformerException{
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document document = docBuilder.newDocument();
Element rootElement = document.createElement("news-counts");
document.appendChild(rootElement);
int j=12;
for(int i=1; i<10; i++) {
Element item = document.createElement("item");
rootElement.appendChild(item);
item.setAttribute("count", "" + j);
item.setAttribute("date", "201408" + "0" + i);
j=j+2;
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
// transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));
String xmlOutput = writer.getBuffer().toString().replaceAll("'n|'r", "");
// return Response.status(Status.NOT_ACCEPTABLE).entity("xmlOutput").build();
//System.out.println(xmlOutput);
return xmlOutput;
} catch (ParserConfigurationException ex) {
Logger.getLogger(Searcher.class.getName()).log(Level.SEVERE, null, ex);
} finally {
return null;
}
}
JavaScript代码-我如何尝试访问xmlOutput变量
function test() {
var r=new XMLHttpRequest();
r.open("GET", "http://localhost:8080/WebApplication6/tavi/searcher/getXml" , false);
r.send();
var responseText = r.responseText;
alert(responseText);
}
您可以通过这种方式在javascript中解析xml -
var content = xml_string;//your xml string variable
if (typeof content == 'string') {
content = ( new window.DOMParser() ).parseFromString(content, "text/xml");
}
您可以轻松地使用Jquery解析xml。这是另一个使用jQuery的简单XML消费。如果你更喜欢纯javascript,看看这个线程。
使用Jquery:
var xml = $.parseXML("<news-counts><item count='"1'" date='"2014-08-13 00:00:00'">Stuff</item><item count='"2'" date='"2014-08-13 01:01:01'">Bar</item></news-counts>");
var x = xml.getElementsByTagName('item');
for(i=0;i<x.length;i++)
{
console.log(x.item(i).textContent); //Stuff Bar
console.log(x.item(i).getAttribute('count')); //1 2
console.log(x.item(i).getAttribute('date')); //2014-08-13 00:00:00 2014-08-13 01:01:01
}
使用javascript :
var parseXml;
if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" &&
new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
throw new Error("No XML parser found");
}
var xml = parseXml("<news-counts><item count='"1'" date='2014-08-13 00:00:00'>Stuff</item><item count='"2'" date='2014-08-13 00:00:00'>Bar</item></news-counts>");//get attributes or contents after this line
可以使用jQuery解析xml。裁判:http://www.jquerybyexample.net/2012/04/read-and-process-xml-using-jquery-ajax.html
相关文章:
- 如何上传一个XML对象并用Perl将其保存在服务器上
- 使用 AJAX 获取 XML,然后将其解析为 JSON(无需服务器)
- 任何人都可以帮助我如何在客户端加载XML,该XML在服务器上,我需要对文件进行更改
- 通过开机自检将 XML 发送到另一台服务器
- 我可以使用jQuery或使用服务器端创建xml吗
- 使用javascript或Php将数据写入服务器端.xml文件
- XML到JSON代理服务器未获取XML提要
- Ajax调用在本地返回json,但在服务器上运行时返回xml
- 使用Javascript中生成的XML将现有XML保存/更新到服务器
- 不使用本地/网络服务器读取 xml
- XMLHttp请求将 XML 发送到 PHP 服务器
- 使用 Jquery 读取 XML 文件,如何将其与服务器发送事件相结合并保持页面最新
- 使用 JavaScript 函数将 HTML 输入中的用户名保存到 XML 或 TXT 文件中的服务器
- 如何上传 XML 文件并发送到 PHP 服务器
- 如何在 JavaScript 中从 FTP 服务器读取 XML
- 我们如何使用 Javascript 将 HTML 表单数据存储到 XML 文件中(并且不使用任何服务器端工具,如 asp
- 从文件服务器读取 XML 文件
- 写入服务器上的 XML 文件
- 如何在JavaScript中读取XML服务器响应
- 使用phoneback——从xml服务器取回不正确工作