`
isiqi
  • 浏览: 16557290 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

利用DOM来处理XML文档(zz)

阅读更多

XML文件1
<?xml version="1.0" standalone="yes" ?>
<Tree>
<TreeNode>
<NodeId>0</NodeId>
<Title>代號 </Title>
<NodeXmlSrc>Content.xml</NodeXmlSrc>
</TreeNode>
<TreeNode>
<NodeId>0</NodeId>
<Title>品牌</Title>
<NodeXmlSrc>BrandList.xml</NodeXmlSrc>
</TreeNode>
<TreeNode>
<NodeId>0</NodeId>
<Title>型體</Title>
<NodeXmlSrc>SpecContent.xml</NodeXmlSrc>
</TreeNode>
<TreeNode>
<NodeId>0</NodeId>
<Title>客戶</Title>
<NodeXmlSrc>BuyerList.xml</NodeXmlSrc>
</TreeNode>
<TreeNode>
<NodeId>0</NodeId>
<Title>規格</Title>
<NodeXmlSrc>SpecList.xml</NodeXmlSrc>
</TreeNode>
<TreeNode>
<NodeId>0</NodeId>
<Title>中國</Title>
<NodeXmlSrc>aa.xml</NodeXmlSrc>
</TreeNode>
</Tree>

XML文件2
<?xml version="1.0" standalone="yes" ?>
<Tree>
<TreeNode NodeId="0" Title="客戶" NodeXmlSrc="BuyerList.xml"></TreeNode>
<TreeNode NodeId="0" Title="品牌" NodeXmlSrc="Sample.xml"></TreeNode>
<TreeNode NodeId="0" Title="型體" NodeXmlSrc="msdnlib587_.xml"></TreeNode>
<TreeNode NodeId="0" Title="規格" NodeXmlSrc="msdnlib3_.xml"></TreeNode>
<TreeNode NodeId="0" Title="代號" NodeXmlSrc="msdnlib3_.xml"></TreeNode>
<TreeNode NodeId="0" Title="產地" NodeXmlSrc="msdnlib587_.xml"></TreeNode>
<TreeNode NodeId="0" Title="中國" NodeXmlSrc="123456.xml"></TreeNode>
</Tree>

我說的是它們的結構,為什麼不一樣,但是出到一個TABLE里面卻是一樣的啊,
文件2變成文件1的形式

两个文件的结构明显不同么,还用说有什么不同吗?
主要的问题是如何转换。
可以用DOM解析第二个文件,然后再构造出第一个文件。

try:
/*** a.htm ***/
<SCRIPT LANGUAGE="javaScript">
function transXML()
{
var oXML, oXSL ;
var sXML ;

oXML= new ActiveXObject("MSXML2.DOMDocument.3.0") ;
oXSL= new ActiveXObject("MSXML2.DOMDocument.3.0") ;
oXML.async = false ;
oXML.load("a.xml") ;
oXSL.async = false ;
oXSL.load("a.xsl") ;

alert(oXML.xml);//转换前

sXML= oXML.transformNode(oXSL)

alert(sXML);//转换后
}

function window.onload()
{
transXML();
}
</SCRIPT>

/*** a.xml ***/
<?xml version="1.0" encoding="utf-8" ?>
<Tree>
<TreeNode NodeId="0" Title="客戶" NodeXmlSrc="BuyerList.xml"></TreeNode>
<TreeNode NodeId="0" Title="品牌" NodeXmlSrc="Sample.xml"></TreeNode>
<TreeNode NodeId="0" Title="型體" NodeXmlSrc="msdnlib587_.xml"></TreeNode>
<TreeNode NodeId="0" Title="規格" NodeXmlSrc="msdnlib3_.xml"></TreeNode>
<TreeNode NodeId="0" Title="代號" NodeXmlSrc="msdnlib3_.xml"></TreeNode>
<TreeNode NodeId="0" Title="產地" NodeXmlSrc="msdnlib587_.xml"></TreeNode>
<TreeNode NodeId="0" Title="中國" NodeXmlSrc="123456.xml"></TreeNode>
</Tree>

/*** a.xsl ***/
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
<Tree>
<xsl:apply-templates select="Tree/TreeNode" />
</Tree>
</xsl:template>

<xsl:template match="TreeNode">
<xsl:element name="{name()}">
<xsl:for-each select="@*">
<xsl:element name="{name()}">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>

</xsl:stylesheet>

在/Tree/TreeNode下,
"XML文件1"以element来描述当前TreeNode的各特性
"XML文件2"以attribute来描述当前TreeNode的各特性
这导致结构差异

element和attribute在DOM中都可定义为XmlNode但NodeType不同,其内容处理方式也有不同

分享到:
评论

相关推荐

    TinyXML指南[中文].pdf

    它能够将XML文档解析成一个可以浏览、修改及保存的文档对象模型(DOM)。 - **版本信息**:此文档基于TinyXML 2.5.3版本。 - **功能描述**:TinyXML使用DOM方式处理XML数据,即通过构建一系列C++对象来表示XML结构...

    xml与Access数据库的转换案例

    XML Schema可以定义数据模型,确保XML文档符合特定的结构和规则,有助于数据的验证和转换。 对于WebSites这个文件夹,可能是包含了一些实际的网站数据,例如用户信息、文章、评论等,这些数据可能以XML格式存储,也...

    zz.js:类似 AS3 的 DOM 操作库

    DOM是HTML和XML文档的编程接口,它允许我们通过JavaScript来访问和修改文档结构、样式和内容。zz.js库的核心目标就是提供一套高效、简洁的API,使开发者可以更加方便地操作DOM元素,如同在AS3环境中那样。 **zz.js...

    JavaEE源码在线考试系统无数据库源码文档

    - **DOM4J**:是一款开源的XML处理工具,它提供了对XML文档的快速读写能力以及强大的DOM接口功能,非常适合于处理复杂的XML数据。 #### 2. 架构模式 - **MVC (Model-View-Controller)**:模型-视图-控制器模式,...

    Java处理Excel,Word,网页数据抓取

    在处理Word文档时,我们通常会用到XWPF(XML Word Processing)类库,它允许我们创建、修改和读取DOCX文件。例如,我们可以创建`XWPFDocument`对象打开或创建一个新的DOCX文件,然后使用`XWPFParagraph`和`XWPFRun`...

    java富士通面试题详细题目解析和内含答案

    在处理 XML 数据时,常见的解析技术包括 DOM (Document Object Model) 和 SAX (Simple API for XML)。 **DOM 解析**: - **特点**:DOM 将整个 XML 文档加载到内存中并创建一个树形结构,通过这个结构可以方便地...

    W3C Javascript 最新Chm格式手册

    DOM是HTML和XML文档的一种编程接口,JavaScript通过DOM可以访问和修改页面的结构、样式和内容。DOM将整个文档表示为一棵节点树,每个HTML元素都是一个节点。JavaScript提供了多种方法和函数来操作DOM,例如通过`...

    第4章 前端面试技能拼图2 :前端基础知识 , 必知必会

    DOM是HTML和XML文档的编程接口,JavaScript通过DOM操作页面元素。掌握如何选取元素(querySelector、querySelectorAll等),修改元素属性,添加删除节点,以及事件处理等,对于实现页面动态效果至关重要。 5. BOM...

    W3CSchool全套Web开发手册

    手册将讲解XML的语法、命名空间、DTD(文档类型定义)和XSD(XML Schema)等,帮助开发者理解如何创建和解析XML文档。 3. **网站构建**:这部分内容涵盖了网站规划、设计原则、响应式布局、SEO优化等方面,帮助...

    PHP源码PHP论文格式化系统-前台的设计与实现(源代码+论文)

    - 使用DOM解析器等工具来实现文本的解析与格式调整。 ##### 3. 结果展示与下载 - 将格式化后的文档内容呈现给用户预览。 - 提供下载链接,允许用户下载最终的格式化文档。 #### 五、总结 通过上述分析与设计,我们...

    python源码今天吃什么程序

    通常使用的技术包括发送HTTP请求、解析HTML/XML文档以及操作DOM结构。在Python中,常用的库如requests用于发送请求,BeautifulSoup和lxml用于解析网页内容。 3. 百度网盘分享链接解析:百度网盘是中国一个流行的云...

    imitate-meituan:这是一个html+css+js实现的仿美团首页

    开发者可能会使用DOM(Document Object Model)API来操作HTML元素,通过`addEventListener`监听并响应用户行为,使用`setTimeout`或`setInterval`实现定时任务,以及利用AJAX(Asynchronous JavaScript and XML)...

    JQuery API中文版CHM

    **jQuery API中文版CHM** 是一个非常实用的资源,主要包含了jQuery库1.7.0、1.8.0以及1.8.2版本的API文档,供开发者参考使用。jQuery是一个广泛应用于Web开发的JavaScript库,它极大地简化了HTML文档遍历、事件处理...

    jQuery_Ajax_实例_全解析(原作者版)

    `load()` 方法是jQuery提供的一个非常实用的功能,用于加载远程HTML文档或片段,并将其插入到DOM中指定的位置。该方法支持两种基本用法: - **无参数**:直接加载URL所指定的页面内容。 - **带参数**:可以传递数据...

Global site tag (gtag.js) - Google Analytics