Импортируйте файл XML на страницу HTML, а затем я хочу использовать DOM для тегов импортированного XML - PullRequest
0 голосов
/ 09 ноября 2011

У меня маленькая (я думаю :)) проблема. У меня есть страница HTML с именем index.html, вот так:

<html>
<head>
<script src="script.js" type="text/javascript" ></script>
</head>
<body>

<div id="MyButtons">
 Here there are some buttons that call some javascripts functinons of file script.js
</body>

</html>

Тогда у меня также есть простой XML-файл, подобный этому:

<?xml version="1.0">
 <testo>
  <paragrafo id="p_01">
    <soggetto>Steve</soggetto> <verbo>is</verbo> a <complemento>man</complemento>.
    <soggetto>Mark</soggetto> <verbo>is</verbo> another <complemento>man</complemento>.
  </paragrafo>

  <paragrafo id="p_02">
    <soggetto>Tony</soggetto> <verbo>is</verbo> a <complemento>cousin of Steve</complemento>.
    <soggetto>Maria</soggetto> <verbo>is</verbo> another <complemento>cousinf of Steve</complemento>.
  </paragrafo>
  .
  .
  .other elements <paragrafo>
  .
  .
</testo>

Я создал свой личный тег, как <testo>, <soggetto>, <verbo> ecc.

Я хочу, чтобы onClick на кнопке my в div="MyButton" запустил гипотетическую функцию javascript loadXML('file.xml',"divId"), которая копирует все содержимое file.xml (текст и тег) и помещает его в div whit id = "divId" ( что функция loadXML создает) в теле index.html. После функции loadXML я хочу, чтобы моя HTML-страница выглядела так:

<html>
<head>
 <script src="script.js" type="text/javascript" ></script>
</head>
<body>
 <div id="divId">

  <testo>
    <paragrafo id="p_01">
     <soggetto>Steve</soggetto> <verbo>is</verbo> a <complemento>man</complemento>.
     <soggetto>Mark</soggetto> <verbo>is</verbo> another <complemento>man</complemento>.
    </paragrafo>

    <paragrafo id="p_02">
     <soggetto>Tony</soggetto> <verbo>is</verbo> a <complemento>cousin of Steve</complemento>.
     <soggetto>Maria</soggetto> <verbo>is</verbo> another <complemento>cousinf of Steve</complemento>.
    </paragrafo>
    .
    .
    .other elements <paragrafo>
    .
    .
 </testo>

 </div>

 <div id="MyButtons">
  Here there are some buttons that call some javascripts functinons of file script.js
 </div>
 </body>

</html>

Таким образом, после того, как я хочу использовать кнопки index.html для функций вызова, которые используют document.getElementById('p_01'); и другие функции DOM, как если бы содержимое файла file.xml уже было на странице по умолчанию index.html.

Как я могу написать функционал loadXML("file.xml","divID"), чтобы сделать это? Я надеюсь, что вы можете помочь мне, пожалуйста, дни, когда я пытаюсь сделать это без какого-либо результата: (

Спасибо всем !!!

Ответы [ 3 ]

1 голос
/ 09 ноября 2011

Посмотрите на Microsoft.XMLDOM FOR IE и document.implementation.createDocument()

Для загрузки XML-документа вы можете сделать следующее.

  if (window.ActiveXObject){
    var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
     }else if (document.implementation && document.implementation.createDocument){
       xmldoc=document. implementation.createDocument("", "doc", null);
    }
   xmldoc.async = false;
   xmldoc.load("file.xml");

вам нужно будет немного поработатьчтобы получить узлы

0 голосов
/ 09 ноября 2011

Многие люди хотели бы делать то, что вы делаете, но, к сожалению, HTML движется не так.Ваша "маленькая" проблема на самом деле была очень большой проблемой в мире стандартов за последний год или около того.Смотрите, например, раздел 2.4 http://www.w3.org/2010/html-xml/snapshot/

0 голосов
/ 09 ноября 2011

Я не думаю, что это возможно. Проблема в том, что getElementById работает только с HTML-объектами DOM, а «paragrafo» не является допустимым объектом DOM («p» будет одним), я имею в виду, что недостаточно иметь правильно сформированные html-теги, они также должны быть html допустимые теги.

Вы должны сообщить нам, что происходит в приложении после нажатия кнопки пользователем? что делает кнопка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...