将XML文件导入HTML页面然后我想在导入的XML标签上使用DOM

时间:2011-11-09 11:38:25

标签: javascript html xml dom import

我有一点(我认为:))问题。 我有一个名为index.html的页面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。

我希望点击div="MyButton"中的我的按钮启动一个假设的功能javascript loadXML('file.xml',"divId"),复制file.xml的所有内容(文字和标签)并将其放在div上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 个答案:

答案 0 :(得分:1)

查看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");

您需要做一些工作来获取节点

答案 1 :(得分:0)

我认为这不可行。问题是getElementById仅适用于HTML DOM对象,而“paragrafo”不是有效的DOM对象(“p”将是一个),我的意思是,它不足以拥有格式良好的html标签,它们也必须是html 有效标记。

您应该告诉我们用户按下按钮后应用程序中发生了什么?按钮有什么作用?

答案 2 :(得分:0)

很多人都想做你正在做的事情,但遗憾的是,这不是HTML的发展方式。在过去一年左右的时间里,你的“小”问题在标准领域实际上是一个非常大的问题。例如,参见http://www.w3.org/2010/html-xml/snapshot/

的第2.4节