我可以使用javascript在iPad应用中阅读XML文件吗?

时间:2011-08-29 02:51:30

标签: xml ipad sharing

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

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

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

我可以通过javascript在我的共享应用上手动插入发布日期,但我更愿意将其设为自动流程。 XML文件有一个标签[authorate]列出了发布日期,所以我试图通过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文件的目录中的两个目录中。我无法弄清楚如何使这项工作...你的帮助将不胜感激。

谢谢, 卡洛斯

----------------------------------------------- -------------------------------------------&GT;

更新

我在工作的朋友的帮助下弄清楚了。解决方案实际上比我想象的要容易!我只是将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');
});

如您所见,我也可以将'issue'变量传递给URL。

1 个答案:

答案 0 :(得分:0)

我实际上回答了我自己的问题(在同事的帮助下),所以这就是:

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