我可以使用javascript读取iPad应用程序中的XML文件

问题描述:

我使用WebView(Woodwing Reader应用程序)在iPad杂志应用程序中包含HTML页面。 HTML页面的所有文件都与应用程序捆绑在一起。我可以使用javascript读取iPad应用程序中的XML文件

该应用程序的根目录包含一个文件夹[images],其中包含应用程序中每个页面的文件夹的子目录(即[page1],[page2],[page3]等)。在根目录中也是映射页面布局结构的主要XML文件。

我正在尝试构建一个读取[magazine.xml]并通过Twitter,FB等共享内容的HTML页面。我能够将[magazine.xml]中的数据解析到外部网页(它将用于共享URL),但问题是外部网页无法识别要共享哪个杂志发行日期。由于每个问题对XML文件[magazine.xml]具有相同的命名约定。

我可以通过javascript手动在我的共享应用程序中插入发布日期,但我宁愿将其设置为自动过程。该XML文件有一个标签[发布]列出发布日期,所以我试图通过javascript读取这个标签,并将其插入到一个URL字符串中...但迄今为止,没有成功。

下面是我的JavaScript样本:

var issue = '08-27-2011'; 

$(function() { 
var src = 'http://www.example.com/sections/ipad/'+section+'/?issue='+issue; 
$('<iframe " src="' + src + '" width="100%" height="100%" scrolling="auto" frameborder="0"><\/iframe>').appendTo('#iframe'); 
}); 

这里是XML结构的示例:

<?xml version="1.0" encoding="UTF-8"?> 
<issue domversion="1.0"> 
<issuedate>08-19-2011</issuedate> 
<items> 
<item> 
    <id>111</id> 
    <category>Story Category</category> 
    <title>Story Title</title> 
    <description>Description</description> 
    <author/> 
    <pages> 
    <page> 
     <horizontalpage> 
     <objects> 
      <object> 
      <id>000111222.1</id> 
      <type>webview</type> 
      <x>0</x> 
      <y>0</y> 
      <width>1024</width> 
      <height>768</height> 
      <link>bundle://images/111/PageID/PageID.html</link> 
      </object> 
     </objects> 
     <pthumb>images/111/PageID_Thumbnail_h.jpg</pthumb> 
     <ppreview>images/111/PageID_Preview_h.jpg</ppreview> 
     </horizontalpage> 
     <verticalpage> 
     <objects> 
      <object> 
      <id>000111222a.1</id> 
      <type>activeelement</type> 
      <x>0</x> 
      <y>0</y> 
      <width>768</width> 
      <height>1024</height> 
      <link>bundle://images/111/PageID/PageID.html</link> 
      </object> 
     </objects> 
     <pthumb>images/111/PageID_Thumbnail_v.jpg</pthumb> 
     <ppreview>images/111/PageID_Preview_v.jpg</ppreview> 
     </verticalpage> 
    </page> 

正如我之前提到的我宁愿自动采集的过程问题var。我尝试用下面的代码要做到这一点,但无济于事:

xmlDoc=loadXMLDoc("../../magazine.xml"); 
var issue = xmlDoc.getElementsByTagName("issuedate"); 

$(function() { 
var src = 'http://www.example.com/sections/ipad/'+section+'/?issue='+issue; 
$('<iframe " src="' + src + '" width="100%" height="100%" scrolling="auto" frameborder="0"><\/iframe>').appendTo('#iframe'); 
}); 

正如你所看到的,在XML文件从保存的JavaScript文件目录位于两个目录了。我无法弄清楚如何使这项工作......你的帮助将不胜感激。

感谢, 卡洛斯

-------------------------------------- -------------------------------------------------- - >

UPDATE:

我想通了,从工作朋友的帮助。解决方案实际上比我想象的要容易!我只是把我的HTML页面在应用程序的根目录下,并呼吁用下面的代码的XML文件:

$(function() { 
var issue; 
$.ajax({ 
    async: false, 
    type: "GET", 
    url: "magazine.xml", 
    dataType: "xml", 
    success: function(xml) { 
     issue = $(xml).find('issuedate').text(); 
    } 
}); 
var src = 'http://www.example.com/ipad/'+section+'/?issue='+issue; 
$('<iframe " src="' + src + '" width="100%" height="100%" scrolling="auto" frameborder="0"><\/iframe>').appendTo('#iframe'); 
}); 

正如你所看到的,我能变量传递了“问题”到URL以及。

我居然回答我自己的问题(用同事的帮助下),所以在这里它是:

$(function() { 
var issue; 
$.ajax({ 
async: false, 
type: "GET", 
url: "magazine.xml", 
dataType: "xml", 
success: function(xml) { 
    issue = $(xml).find('issuedate').text(); 
} 
}); 
var src = 'http://www.example.com/ipad/'+section+'/?issue='+issue; 
$('<iframe " src="' + src + '" width="100%" height="100%" scrolling="auto" frameborder="0"><\/iframe>').appendTo('#iframe'); 
});