javascript - 使用 phonegap/Jquery/Ajax 将 XML 解析为数据库

标签 javascript sqlite cordova jquery-mobile xml-parsing

大家好我会非常感谢这里的帮助,我正在尝试解析 XML 并将结果放入我正在开发的应用程序(Phonegap/JQuery 移动应用程序)的数据库中。有人可以告诉我如何在 JS 函数中执行此操作吗?

我了解 XML 的解析过程,但是我对将其本地存储到 phonegap 允许您访问的 SQLlite 数据库中有点迷茫。这是我正在使用的 XML:

<?xml version="1.0" encoding="UTF-8"?>
 <orders>
    <order>
        <orderId>123456789</orderId>
        <city>Cincinnati</city>
        <state>Ohio</state>
        <zip>45451</zip>
    </order>
 </orders> 

这是一个解析这个的 JS 函数:

        $(document).ready(function(){
    $.ajax({
    type: "GET",
    url: "testOrders.xml",
    dataType: "xml",
    success: function(xml) {
      $(xml).find('order').each(function(){
        orderId = $(this).find("orderId").text();
        city = $(this).find("city").text();
        state = $(this).find("state").text();
        zip = $(this).find("zip").text();
         $("#acceptedOrdersContent").append('<div>');
         $("#acceptedOrdersContent").append('<h3>'OrderId: '+ orderId + '</h3>');
         $("#acceptedOrdersContent").append('<p>');
         $("#acceptedOrdersContent").append('City: '+ city + '<br />');
         $("#acceptedOrdersContent").append('State: '+ state + '<br />');
         $("#acceptedOrdersContent").append('Zip: '+ zip +'<br />');
         $("#acceptedOrdersContent").append('</p>');
         $("#acceptedOrdersContent").append('</div>');
            });
        }
     });
 });

谢谢大家!

最佳答案

创建数据库:

var db = openDatabase('PhoneGap_db', '1.0', '', 2 * 1024 * 1024);

创建表:

db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS orders (id unique, city, state, zip)');
});

插入表格:

db.transaction(function (tx) {
  tx.executeSql('INSERT INTO orders (id, city, state, zip) VALUES (orderId,city,state,zip)');
});

最好将 INSERT 放在 AJAX 的回调中:

$.ajax({
    type: "GET",
    url: "testOrders.xml",
    dataType: "xml",
    success: function(xml) {
      $(xml).find('order').each(function(){
        orderId = $(this).find("orderId").text();
        city = $(this).find("city").text();
        state = $(this).find("state").text();
        zip = $(this).find("zip").text();
        db.transaction(function (tx) {
           tx.executeSql('INSERT INTO orders (id, city, state, zip) VALUES      (orderId,city,state,zip)');
        });
            });
        }
     });

祝你好运!

关于javascript - 使用 phonegap/Jquery/Ajax 将 XML 解析为数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745478/

相关文章:

javascript - 检查任何 Angular 输入是否有输入

javascript - 是否可以在 javascript 中的 decleration 语句之后将初始值分配给 const 变量?

java - execSQL() 期间 SQLite 数据库错误

sqlite - 普通 CTE 的递归 CTE

sqlite - 存储我的服务 sqlite 数据库文件的最佳位置?

ios AVSpeechSynthesizer 插件 phonegap pauseSpeakingAtBoundary 不工作

Cordova 插件位置准确性未显示请求

javascript - 如何使用按钮将时间传递给 Postgresql DB 而不是表单中的 rails time_select 框

javascript - 非 200 时 Angular 没有得到响应

javascript - $(这个)。方法(js 或 jquery)