Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用xmlhttprequest以html格式显示另一个xml文件中指定的xml文件中的xml数据_Javascript_Xml_Xmlhttprequest - Fatal编程技术网

Javascript 使用xmlhttprequest以html格式显示另一个xml文件中指定的xml文件中的xml数据

Javascript 使用xmlhttprequest以html格式显示另一个xml文件中指定的xml文件中的xml数据,javascript,xml,xmlhttprequest,Javascript,Xml,Xmlhttprequest,你能帮忙吗,我有一个基本的xml文件,它在html中显示得很好 xml文件是这样的 <videoList> <video> <pointer> <type><![CDATA[image]]></type> <lat><![CDATA[52.1]]></lat>

你能帮忙吗,我有一个基本的xml文件,它在html中显示得很好

xml文件是这样的

<videoList>
        <video>
            <pointer>
                <type><![CDATA[image]]></type>
                <lat><![CDATA[52.1]]></lat>
                <long><![CDATA[1.0]]></long>
            </pointer>
            <speaker>
                <firstName><![CDATA[Mr Car Dealer]]></firstName>
                <town><![CDATA[]]></town>
                <description><![CDATA[Car Dealer]]></description>
                <longDescription><![CDATA[A car dealer selling BMW's and Audi's]]></longDescription>
                <videoCaption><![CDATA[captions/bmw.xml]]></videoCaption>
                <video><![CDATA[video/9ADA1C9.flv]]></video>
                <story><![CDATA[]]></story>
                <picture><![CDATA[images/bmw.jpg]]></picture>
            </speaker>
        </video>

除了
标记中的数据外,所有内容都显示良好-此链接指向另一个XML文件,该文件由以下内容组成

<?xml version="1.0" encoding="utf-8"?>
<tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1" xmlns:tts="http://www.w3.org/2006/04/ttaf1#styling">
  <head>
   <styling>
      <style id="1" tts:textAlign="right"/>
      <style id="2" tts:color="transparent"/>
      <style id="3" style="2" tts:backgroundColor="white"/>
      <style id="4" style="2 3" tts:fontSize="10"/>
   </styling>
  </head>
  <body>
   <div xml:lang="en">
    <p begin="00:00:00.20" dur="00:00:02.00">My name is Mr Car.</p> 
    <p begin="00:00:02.30" dur="00:00:03.00">We offer original car parts.</p>

</div>
</body>
</tt>

我的名字是卡尔先生。

我们提供原装汽车零部件

我试图做的是显示第二个xml文件中的数据以及相应的数据,但没有成功。在第一个xml文件中,大约有10个条目,每个条目都链接到
标记中的一个单独的xml文件

到目前为止,我已经成功地在iFrame中显示了第二个xml文件,但是我无法使用css来设置它的样式,而且它在Firefox中也不起作用

目前,我正在使用dreamweaver spry方法以html格式显示数据

我有一个很好的回应

简而言之,我会抓住 第二个XML文件(假定其位于同一位置) 域),然后 将其适当地插入到a中 定位师

这样,CSS样式仍将保持不变 对它来说,这似乎是不可能的 使用iframe时的情况

在当前工作的html中使用xmlhttprequest的最佳方法是什么。我已经设置了一个表来显示xml,并且包含了XMLHttpRequest.js,但是我不喜欢显示第二个文件中的实际数据

<table width="600" border="0" align="center" cellpadding="0" cellspacing="14" class="storyContainerBack">
<tr>
   <td width="144" align="left" valign="top">{firstName}<br />
    {description}<br />
     <br />
       <img src="{picture}" width="80" height="80"/></td>
          <td width="424" align="left" valign="top"><p class="storyTableTitle">{longDescription}</p>
        <p class="storyTableCaption">
<script type="text/javascript">
var req = new XMLHttpRequest(); if (req) { req.onreadystatechange = function() { if (req.readyState == 4 && (req.status == 200 || req.status == 304)) { alert(req.responseText); } }; req.open('GET', '{videoCaption}'); req.send(null); } 
    </script>
</p>
</td>

{firstName}
{说明}

{longDescription}

var req=新的XMLHttpRequest();if(req){req.onreadystatechange=function(){if(req.readyState==4&&(req.status==200 | | | req.status==304)){alert(req.responseText);};req.open('GET','videoCaption}');req.send(null);}

如果有人能告诉我如何显示第二个xml文件的结果,那就太好了

谢谢

这可能会起作用(未经测试,因此可能会出现一些小的语法问题),您可以将其放在
表下
标记:

function getVideoChild() {
    var req = new XMLHttpRequest();
    req.open("GET", "whatever-file-name-is.xml");
    req.onload = function() {

       var result = req.responseText; 
           // If you need to manipulate result, do it here, then this:
       var target = document.getElementsByClassName('storyTableCaption')[0].innerHTML = result;

    };
    req.send();
}
我把它移到了标记之外,因为AJAX请求需要时间,所以
document.write(result)不是个好主意

其次,为XML的周围标记提供一个
ID
可能更容易,这样您就不必执行
getElementsByClassName
操作并在结果数组中查找第一个结果

最后,我不确定您是否正在处理XML,以便它显示在您的网页中,但是如果您需要做任何事情,我已经在代码注释中指出了一个好的地方