HTML读取xml文件的三种办法

  • 刚开始学这里的时候有点懵,以前没学过。但是学安卓动画(Animation)的时候接触过xml文件,总体来说不难。
  • 一般来说xml文件用来储存数据,然后html读取它,主要介绍三种读取方式

利用CSS读取xml文件

//CSS代码:设置xml数据的显示格式

students{
    display:table;
    border-top-width: 2mm;
    border-right-width: 1mm;
    border-bottom-width: 2mm;
    border-left-width: 1mm;
    border-collapse:collapse;
    border-collapse:collapse;
    margin:auto;
    margin-top:20px;
    }
student{
    display:table-row;
    line-height:24px;
    }
sn,name,sex,nation,add,pro{
    display:table-cell;
    border:1px solid;
    padding:6px;
}

//xml文件:放置测试数据,以下代码均是基于该xml文件
<?xml version="1.0" encoding="utf-8"?>
<!-- 与css文件对应  -->
<?xml-stylesheet type="text/css" href="cssformat.css"?>
<students>
 <student>
 <sn>20040112</sn>
 <name>张三</name> 
 <sex></sex> 
 <nation>汉族</nation>  
 <add>山东</add>   
 <pro>计算机</pro>
 </student>
 <student>
 <sn>20040201</sn>
 <name>李四</name> 
 <sex></sex> 
 <nation>汉族</nation>  
 <add>山东</add>   
 <pro>计算机</pro>
 </student>
 <student>
 <sn>20031514</sn>
 <name>王五</name> 
 <sex></sex> 
 <nation>汉族</nation>  
 <add>山东</add>   
 <pro>计算机</pro>
 </student>
 <student>
 <sn>20031514</sn>
 <name>赵六</name> 
 <sex></sex> 
 <nation>汉族</nation>  
 <add>山东</add>   
 <pro>计算机</pro>
 </student>
</students>

//html代码:让xml文件的内容显示到html上,src的值与xml文件对应
<iframe src="cssxml.xml" width="500px" height="200px" frameborder="0"></iframe>

因为这种方法用的不多,所以不做详细说明


利用XSLT读取xml文件

首先需要新建一个xslt文件(后缀为.xsl),如果用的Dreamweaver,可以很方便的创建。

xslt文件可以使用html的标签,代码如下:

<!-- 注意DWXMLSource的值为解析目的xml文件 -->
<?xml version="1.0" encoding="utf-8"?><!-- DWXMLSource="cssxml.xml" -->

...

<!-- 在body里添加以下代码 -->
<table border="1" cellpadding="2" align="center">
      <caption>studentlist</caption>
      <tr>
      <td>学号</td>
      <td>姓名</td>
      <td>性别</td>
      <td>民族</td>
      <td>籍贯</td>
      <td>专业</td>
      </tr>
      <!-- xsl里的遍历语句,可以与xml文件的内容一一对应 -->
      <xsl:for-each select="students/student">
      <tr>
      <!-- 与xml文件的标签一一对应 -->
      <td align="center"><xsl:value-of select="sn"/></td>
      <td align="center"><xsl:value-of select="name"/></td>
      <td align="center"><xsl:value-of select="sex"/></td>
      <td align="center"><xsl:value-of select="nation"/></td>
      <td align="center"><xsl:value-of select="add"/></td>
      <td align="center"><xsl:value-of select="pro"/></td>
      </tr>
      </xsl:for-each>
      </table>

...

这种方法可能用的也不多,也不做详细解释(吐槽:用的少的比较难,用的多的比较简单)


JS读取xml文件

直接上代码,如下:


...


<table border="1" cellpadding="2" align="center">
      <caption>
      使用DOM显示XML文档
      </caption>
      <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>性别</td>
        <td>民族</td>
        <td>籍贯</td>
        <td>专业</td>
      </tr>
      <script type="text/javascript">
      var isie = true;
      //所读取xml文件
      var xmlDoc = getxmlDoc("cssxml.xml");

        var stuList = xmlDoc.getElementsByTagName("student");
   for(var i=0;i<stuList.length;i++){
       document.write("<tr>");
       var subList = stuList[i].childNodes;
       for(var j=0;j<subList.length;j++){
           document.write("<td>"+subList[j].text+"</td>");
           }
           document.write("</tr>");
       }
        //获取xmlDoc对象,兼容浏览器,参考网上代码
        function getxmlDoc(xmlFile) {
            var xmlDoc;
            if (window.ActiveXObject) {
                xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE
                xmlDoc.async = false;
                xmlDoc.load(xmlFile);
            }
            else if (isFirefox=navigator.userAgent.indexOf("Firefox")>0) { //火狐

                xmlDoc = document.implementation.createDocument('', '', null);
                xmlDoc.load(xmlFile);
            }
            else{ //谷歌
              var xmlhttp = new window.XMLHttpRequest();
                xmlhttp.open("GET",xmlFile,false);
                xmlhttp.send(null);
                if(xmlhttp.readyState == 4){
                xmlDoc = xmlhttp.responseXML.documentElement;
                } 
            }

            return xmlDoc;
        }

      </script>
    </table>

...

强调一点,像IE浏览器,执行这段代码会出现提示,如下图所示:
这里写图片描述
必须点击“允许阻止的内容”才能显示xml的数据


但是最简单最好用最兼容的方法,自然还是jQuery,但是太简单了,有兴趣的可以网上搜搜,资源很多,我就不废话了~~

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用 JavaScript 和 DOM API 来读取本地的 XML 文件,并输出修改。以下是一些示例代码: 1. 读取本地 XML 文件: ```javascript let xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml"); ``` 其中,`xmlString` 是 XML 文件的字符串内容。 2. 获取 XML 结点: ```javascript let node = xmlDoc.getElementsByTagName("nodeName")[0]; ``` 其中,`nodeName` 是 XML 结点的名称。 3. 修改结点内容: ```javascript node.textContent = "new content"; ``` 4. 输出修改后的 XML 内容: ```javascript let xmlStringNew = new XMLSerializer().serializeToString(xmlDoc); console.log(xmlStringNew); ``` 完整的示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>Read and modify local XML file</title> <meta charset="utf-8"> <script type="text/javascript"> function readXMLFile() { let xmlString = ` <?xml version="1.0" encoding="UTF-8"?> <root> <item> <name>Item 1</name> <price>10.00</price> </item> <item> <name>Item 2</name> <price>20.00</price> </item> </root> `; let xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml"); let node = xmlDoc.getElementsByTagName("name")[0]; node.textContent = "New Item Name"; let xmlStringNew = new XMLSerializer().serializeToString(xmlDoc); console.log(xmlStringNew); } </script> </head> <body> <button onclick="readXMLFile()">Read and Modify XML File</button> </body> </html> ``` 注意,在浏览器中读取本地 XML 文件需要使用 `FileReader` 对象,这里的示例代码只是展示了读取和修改 XML 结点的基本方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值