首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在phonegap中使用javascript `document.getElementsByTagName`解析xml (xforms)文档

在phonegap中使用javascript `document.getElementsByTagName`解析xml (xforms)文档
EN

Stack Overflow用户
提问于 2012-05-31 14:01:38
回答 1查看 790关注 0票数 0

我在用javascript解析xform时遇到了一些困难。

xml根的结构是:

代码语言:javascript
复制
<?xml version="1.0"?>
<h:html xmlns="http://www.w3.org/2002/xforms" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:ex="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jr="http://openrosa.org/javarosa">
  <h:head>
    <h:title>Phonegap Survey</h:title>        
  </h:head>
  <h:body>A ton more tags here</h:body>
</h:html>

我正在使用firefox (v.12)开发并尝试部署到android上的phonegap/cordova。我正在使用jquery从odk服务器获取数据。我正在指定dataType: 'xml',它按照预期使用一个文档对象进行响应。在firefox中,我编写了一个应用程序,它向用户展示来自这个xml的数据。我正在使用构建在javascript中的函数,如:

代码语言:javascript
复制
var title = surveyXML.getElementsByTagName('h:title')[0].firstChild.data
var body = surveyXML.getElementsByTagName('h:body')[0];
var text = surveyXML.getElementsByTagName('text')

我已经用这些方法编写了完整的应用程序(并且工作得很好)。但是现在我已经在eclipse上将我的文件复制到phonegap (运行cordovo 1.7.0,在android模拟器2.3上),没有任何DOM调用返回元素!!我得到的东西是:

代码语言:javascript
复制
05-31 13:21:28.686: D/CordovaLog(841): file:///android_asset/www/formcontroller.js:
line 159 : TypeError: Result of expression 'body' [undefined] is not an object.

所有的电话。我已经验证了设备有正确的xml (它不是空的或任何东西)

因此,为了完成这个任务,我尝试使用jQuery导航文档对象,希望它知道一些我不知道的事情。

代码语言:javascript
复制
$(surveyXML).find('title');
$(surveyXML).find('h:title')

一点也不工作。但是没有h:前缀的标记可以正常工作,如果我要搜索$(surveyXML).find('text'),它会像预期的那样返回所有text元素。

考虑到根元素是<html>,我尝试指定dataType: html (尽管文档明显标记为<?xml version="1.0"?>),并且jquery无法像预期的那样解析它。

因此,我想知道:如何解析这个XML跨平台,以便它能够在浏览器和phonegap中工作。而且,假设它不能同时使用相同的DOM操作函数,那么我如何使它至少在phonegap??中工作呢?

一如既往,任何帮助都是值得感激的。谢谢。

编辑:就目前而言,我只是手动引用元素的确切位置,比如到达body,我要去xml.firstChild.children[1]**. 因为我的截止日期还没到。我觉得应该有一种使用getElementsByTagName的方法。泰**

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-14 15:48:29

这已经有两个星期没有回答了,所以我只是张贴我所做的。

现在,我只是手动引用元素的确切位置,比如到达body,我要去xml.firstChild.children1。

因此,我所做的不是搜索带有名称空间的标记,而是直接引用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10835165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档