Могу ли я прочитать XML-файл в приложении для iPad с помощью JavaScript - PullRequest
1 голос
/ 29 августа 2011

Я включаю HTML-страницы в приложение для iPad-журналов, используя WebView (приложение Woodwing Reader).Все файлы для страниц HTML связаны с приложением.

Корневой каталог приложения содержит папку [images], которая содержит подкаталоги папок для каждой страницы в приложении (то есть [page1], [page2], [page3] и т. д.).Также в корневом каталоге находится основной XML-файл, который отображает структуру макета страниц.

Я пытаюсь создать HTML-страницу, которая читает [magazine.xml] и делится контентом через Twitter, FB и т. Д.. Я могу проанализировать данные из [magazine.xml] на внешнюю веб-страницу (которая будет использоваться для общего URL-адреса), но проблема в том, что внешняя веб-страница не может распознать дату выпуска журнала, которой следует поделиться,Поскольку у каждого выпуска одно и то же соглашение об именах для файла XML [magazine.xml].

, я могу вручную вставить дату выпуска в свое приложение для обмена через javascript, но я бы предпочел сделать это автоматизированным процессом.В XML-файле есть тег [publate], в котором указана дата публикации, поэтому я пытаюсь прочитать этот тег с помощью 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>

Как я уже упоминал ранее, я бы предпочел автоматизировать процесссбора вопроса вар.Я попытался сделать это с помощью следующего кода, но безрезультатно:

 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.Я не могу понять, как сделать эту работу ... ваша помощь будет высоко ценится.

Спасибо, Карлос

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

ОБНОВЛЕНИЕ:

Я понял это с помощью друга с работы.Решение было на самом деле проще, чем я думал!Я просто поместил свои 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 голосов
/ 05 сентября 2011

Я действительно ответил на свой вопрос (с помощью сотрудника), так что вот оно:

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