【发布时间】:2013-09-03 14:24:14
【问题描述】:
我需要在服务器端解析上传的 XML 文档。现在我有一些可以在客户端运行的代码,但我想将它移到服务器端。我的客户端使用 FileReader API,其代码如下所示:
reader.onload = function (e) {
var InnerLibrary = new String(e.target.result);
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(InnerLibrary, "text/xml");
console.log("start of xmlDoc console log");
console.log(xmlDoc);
console.log("end of xmlDoc console log");
$(xmlDoc).find('book').each(function () {
console.log("book Found");
console.log(($(this).attr("year")));
version = ($(this).attr("year"));
});
现在我被引导使用 libxmljs,因为我现在似乎找不到其他一些 SO 问题。但是那个人说 libxmljs 会更好,因为这样我可以使用 find() 遍历 XML DOM 对象,这暗示你 不能 在 xml2js 中这样做。
我尝试了 libxmljs,但由于某种原因,它导致了我在此问题中提到的问题: The question where libxmljs causes problems
所以我问,我可以在xml2js中使用这种遍历方法吗? (我的意思是,使用 .find() .each() .attr(),基本上所有用到的东西)
如果没有,我应该用什么方法找到数据?
更新: 我昨天尝试使用 xml2js,结果它不会将 xml 文件解析为字符串,它只会将 xml 解析为字符串。所以一个额外的问题是:
奖励:我可以在服务器端使用 FileReader API 吗?
【问题讨论】:
-
您提到的问题是 Windows Azure 无法构建本地模块,您使用的是哪个平台。
-
关于 xml2js 的问题不在于 Windows Azure。这是使用 libxmljs 时的问题。您可以将 xml2js 作为节点模块引入项目文件结构中,并像其他任何 Windows azure 节点模块一样上传它。
标签: javascript xml node.js xml-parsing