xml+dom4j+数据库-初学xml,用dom4j怎么解析xml的混合类型元素?

问题描述

初学xml,用dom4j怎么解析xml的混合类型元素?

我是一个在校学生,刚刚接触xml,通过学习知道怎么用dom4j解析解析简单的xml文件,但是遇到混合元素的话就不太懂,有以下问题希望各位大神帮忙:
1.混合元素中的子元素可以出现多次,如何解析这个出现多次的元素,并把内容存入数据库?如:name的dtd定义和xml文档片段如下,怎么解析两个first,我只能解析出一个:

 <!ELEMENT name (first+, middle?, last)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT last (#PCDATA)>``
 <name>
      <first>Jeff</first>
      <first>Craig</first>
      <last>Rafter</last>
    </name>

2.遇到《br/》怎么处理?
比如description元素的dtd及xml如下:

 <!ELEMENT description (#PCDATA | em | strong | br)*>
<!ELEMENT em (#PCDATA)>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT br EMPTY>
<description>
       Jeff is a developer and author for Beginning XML
       <em>4th edition</em>
       .<br/>Jeff
       <strong>loves</strong>
        XML!
</description>

3.混合元素的文本值交叉出现在各个子元素之间,我把它解析出来后就会存到同一个字段中,取出来创建xml文档的时候怎么还原?
比如还是上面的description元素,我存到数据库之后是:

然后读出来创建新的xml文档的时候就变成:

<description>Jeff is a developer and author for Beginning XML .Jeff XML!
      <em>4th edition</em>
      <strong>loves</strong>
    </description>

和上面的xml文档不一样了!

希望大神给解答解答!

解决方案

XML解析 Dom4j
dom4j解析xml
使用 dom4j 解析XML

解决方案二:

csdn新人,第一次发帖,连发帖的格式的不对,第2个问题是:
2.遇到“
”怎么处理?
比如description元素的dtd及xml如下:

  <!ELEMENT description (#PCDATA | em | strong | br)*>
<!ELEMENT em (#PCDATA)>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT br EMPTY>

    <description>Jeff is a developer and author for Beginning XML <em>4th edition</em>.<br/>Jeff <strong>loves</strong> XML!</description>
  </contact>

希望各位指教!

解决方案三:

啊啊啊,还是错了,应该是“2.遇到《br/》怎么处理?”

解决方案四:

http://blog.csdn.net/redarmy_chen/article/details/12969219 希望能帮到你

时间: 2024-09-11 07:16:50

xml+dom4j+数据库-初学xml,用dom4j怎么解析xml的混合类型元素?的相关文章

3G手机Android应用开发第四天课程2.从网络获取xml格式的视频资讯,我的解析xml出现错误

问题描述 按照视频中的例子做,出现如下错误:web项目运行正常,如访问:http://localhost:8088/videoweb/video/list.do返回的xml为: <?xml version="1.0" encoding="UTF-8" ?> - <videos>- <video id="78"> <title>喜羊羊与灰太狼全集</title> <timelengt

在java中使用dom4j解析xml(示例代码)_java

虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: 复制代码 代码如下: <?xml version="1.0" encoding=&quo

深入浅出如何解析xml文件---下篇

    在上篇博文中,小编主要介绍xml的两种解析方式,分别是dom4j和dom,今天这篇博文,小编主要来简单介绍一下xml的其她两种解析方式sax和jdom.     sax解析xml文件     sax,全称是Simple API for XML ,即是一种接口,也是一种软件包,她也是一种xml解析的替代方法,sax不同于dom解析,她逐行扫描文档,一边扫描一边解析,由于应用程序只是在读取数据时检查数据,因为不需要将数据存储在内存中,这对于大型文档的解析是个巨大优势.     sax这种处理

PHP生成XML格式数据与解析xml数据程序

先看xml文档  代码如下 复制代码 <?xml version="1.0" encoding="utf-8"?> <article>     <item>         <title size="1">title1</title>         <content>content1</content>         <pubdate>2009-1

用PHP工具包expat解析XML

xml 如今人人鼓吹XML是Web开发者最好的朋友,有了XML的帮忙,后者即可轻松地格式化和显示来自几乎任何数据源的数据.但是,对动态内容而言,格式优良的数据却还远远谈不上达到理想状态.大多数的Web开发者都会告诉你,今天的网络上没有动态内容怎么能行!问题是:"到底该如何用XML创建动态内容呢?" 答案是用动态内容处理语言来解析XML,比如用PHP或者Perl等,从理论上说,这类程序语言是可以出于各种目的利用XML的.无非是采用一些能解析XML的工具包而已.James Clark就提供

jQuery解析XML文件同时动态增加js文件的方法_jquery

本文实例讲述了jQuery解析XML文件同时动态增加js文件的方法.分享给大家供大家参考.具体实现方法如下: $(function(){ $.ajax({ url: 'js/config/jsConfig.xml', dataType: 'xml', success: function(data){ $(data).find("moduleName").each(function(i,obj) { var field = $(this); var funcName = field.at

Java解析XML(一)、SAX

package xml; import java.io.IOException; import java.io.InputStream; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import model.Book; /** * 使用SAX解析XML文件 */ public class SaxHelper { private stati

Android 创建与解析XML(三)—— Sax方式

http://blog.csdn.net/sunboy_2050/article/details/7521598 1. Sax概述 SAX是一种占用内存少且解析速度快的解析器,它采用的是事件启动,不需要解析完整个文档,而是按照内容顺序看文档某个部分是否符合xml语法,如果符合就触发相应的事件,所谓的事件就是些回调方法(callback),这些方法 定义在ContentHandler中,下面是其主要方法:startDocument():当遇到文档的时候就触发这个事件 调用这个方法 可以在其中做些预

实例解析Android中使用Pull解析器解析XML的方法_Android

1.Pull简介Pull解析器是Android系统内置的的,Pull解析器与SAX解析器类似,他提供了类似的事件,如开始元素和介绍元素的事件,使用parser.next()可以进入下一个元素并触发相应的事件,然后进行相应的处理,当元素开始解析时,调用perser.nextText()方法就可以获取到下一个Text类型元素的值. 2.pull特点(1)简单的结构,一个接口,一个另外,一个工厂组成了Pull解析器 (2)简单易用,Pull解析器只有一个重要的方法next(),他被用来检索下一个事件,