【问题标题】:Parse an XML into a database with phonegap/Jquery/Ajax使用 phonegap/Jquery/Ajax 将 XML 解析到数据库中
【发布时间】:2012-11-24 14:12:26
【问题描述】:

大家好,我非常感谢这里的一些帮助,我正在尝试解析 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>');
            });
        }
     });
 });

谢谢大家!

【问题讨论】:

    标签: javascript sqlite cordova jquery-mobile xml-parsing


    【解决方案1】:

    创建数据库:

    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)');
            });
                });
            }
         });
    

    祝你好运!

    【讨论】:

    • dod_basim 感谢您的快速回复,我确实有另一个问题要问您。既然它们在数据库中,我将如何显示它们?
    猜你喜欢
    • 2023-03-10
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多