`
sonyfe25cp
  • 浏览: 203853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

又见XML解析

XML 
阅读更多
package parseXML;

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.List;

import org.jdom.Content;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import utils.NumberUtils;
import entity.SearchUnit;
import exception.ParseFileException;

public class JDomParse {

	public SearchUnit getSearchUnit(File file) throws Exception {

		SearchUnit unit = new SearchUnit();
		SAXBuilder builder = new SAXBuilder(false);
		Document doc = builder.build(new FileInputStream(file));
		Element SEContent = doc.getRootElement();

		unit.setTitle(SEContent.getChildText("Title").replaceAll("<[^>]*>", "").trim());

		if (SEContent.getChildText("Description").replaceAll("<[^>]*>", "").trim().length() < 100)
			unit.setDescription(SEContent.getChildText("Description").replaceAll("<[^>]*>", "").trim());
		else
			unit.setDescription(SEContent.getChildText("Description").replaceAll("<[^>]*>", "").trim().substring(0, 99));
		
		unit.setSystem(file.getName().substring(5, 7));

		String cost = SEContent.getChildText("Cost").trim();
		unit.setCost(cost);
		double costDouble = Double.parseDouble(cost);
		unit.setCostBySorting(NumberUtils.pad(costDouble));

		unit.setLocation(SEContent.getChildText("Location").trim());
		unit.setCreateTime(SEContent.getChildText("CreateTime").trim());
		unit.setLastModifyTime(SEContent.getChildText("LastModifyTime").trim());
		
		if(SEContent.getChildText("MediaType").trim().equals("")||SEContent.getChildText("MediaType").trim()==null)
			unit.setMediaType("T");
		else
			unit.setMediaType(SEContent.getChildText("MediaType").trim());
		
		if (SEContent.getChildText("ThumbURL") == null
				|| SEContent.getChildText("ThumbURL").length() <= 0) {
			unit.setThumbURL("0");
		} else {
			unit.setThumbURL(SEContent.getChildText("ThumbURL"));
		}
		if (SEContent.getChildText("ExpertComment") == null
				|| SEContent.getChildText("ExpertComment").length() <= 0) {
			unit.setExpertComment("0");
		} else {
			unit.setExpertComment(SEContent.getChildText("ExpertComment"));
		}
		if (SEContent.getChildText("ConsumerComment") == null
				|| SEContent.getChildText("ConsumerComment").length() <= 0) {
			unit.setConsumerCommenet("0");
		} else {
			unit.setConsumerCommenet(SEContent.getChildText("ConsumerComment"));
		}

		if (SEContent.getChildText("Recommend") == null
				|| SEContent.getChildText("Recommend").length() <= 0) {
			unit.setRecommend("1");
		} else {
			unit.setRecommend(SEContent.getChildText("Recommend").trim());
		}

		if (SEContent.getChildText("SunFlower") == null
				|| SEContent.getChildText("SunFlower").length() <= 0) {
			unit.setSunFlower("0");
		} else {
			unit.setSunFlower(SEContent.getChildText("SunFlower").trim());
		}

		if (SEContent.getChildText("Discount") == null
				|| SEContent.getChildText("Discount").length() <= 0) {
			unit.setDiscount("1");
		} else {
			unit.setDiscount(SEContent.getChildText("Discount").trim());
		}

		unit.setTheme(SEContent.getChildText("Theme").trim());
		
		unit.setOwner(((Element) SEContent.getChildren("Copyright").get(0)).getChildText("Owner").trim());
		
		String contributors = new String();

		Element contributor = (Element) SEContent.getChildren("Contributor").get(0);
		List valueList = contributor.getChildren();
		for (Iterator iter = valueList.iterator(); iter.hasNext();) {
			Content value = (Content) iter.next();
			String name = value.getValue();
			contributors = contributors + name + ";";
		}
		unit.setContributor(contributors.substring(0, contributors.length() - 1));

		StringBuffer contributorss = new StringBuffer();

		//unit.setContributor(((Element) SEContent.getChildren("Contributor").get(0)).getChildText("value").trim());
		return unit;

	}

	public static void main(String[] args) {
		File file = new File("D:\\CEOM_01_M_20090805133924_0727_N.xml");
		SearchUnit su = null;
		try {
			su = new JDomParse().getSearchUnit(file);
		} catch (Exception e) {
			ParseFileException pfe = new ParseFileException();
			if (pfe.isFileNotFoundException(e)) {
				System.out.println("File Not Found !");
			}
		}
		try {
			System.out.println(su.toString());
		} catch (Exception e) {
			ParseFileException pfe = new ParseFileException();
			if (pfe.isNullPointerException(e))
				System.out.println("Su is null !");
		}

	}

}


1.利用 replaceAll("<[^>]*>", "") 去除内容里面的成对的html标签
2.包含了xml解析中常遇到的情况
<root>
   root
</root>
----
<root>
<name>root</name>
</root>

记下..
分享到:
评论

相关推荐

    易语言 xml解析 易语言 xml解析 教程 带源码

    易语言XML解析是编程领域中的一个重要主题,尤其对于使用易语言进行开发的程序员来说,理解并掌握XML(可扩展标记语言)的解析方法是至关重要的。XML作为一种结构化数据存储和交换格式,广泛应用于网络通信、配置...

    解析xml解析xml解析xml解析xml解析xml

    本篇文章将深入探讨XML解析的基本概念、解析方式以及在实际应用中的重要性。 一、XML的基本结构 1. 元素:XML文档的核心是元素,元素以尖括号 `和 `&gt;` 包裹,如 `&lt;element&gt;`。元素可以包含其他元素、属性和文本。...

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xml

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...

    XML解析器示例

    在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这个强大的图形化编程环境中,XML解析器是处理和操作XML数据的关键工具。本示例主要展示了如何在LabVIEW中实现XML文件的加载、保存和解析。 首先...

    C# XML解析方式

    根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...

    XML解析工具

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...

    xml 解析 xml 解析几何

    在本文中,我们将深入探讨XML解析,以及如何在Java中处理XML文档。 XML解析是将XML文档转换为编程语言可以理解和操作的数据结构的过程。解析XML主要有两种方法:DOM(Document Object Model)和SAX(Simple API for...

    xml解析文件的两种方式

    本文将详细介绍XML解析文件的两种主要方式:SAX(Simple API for XML)和DOM(Document Object Model)。 **1. DOM解析** DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个...

    XML解析技术研究XML解析技术研究

    XML解析技术是XML应用的核心,它涉及将XML文档转换为可处理的结构化数据。XML,全称为eXtensible Markup Language,是一种元语言,用于描述结构化数据,独立于编程语言、操作系统和传输协议。W3C联盟自1996年开始...

    XML 解析XML 解析XML 解析XML 解析XML 解析

    XML解析是处理XML文档的核心技术,它允许程序读取、理解和操作XML数据。 在XML解析中,主要有两种解析方式: 1. **DOM解析(Document Object Model)**:DOM将整个XML文档加载到内存中,形成一个树形结构,称为DOM...

    XML解析和生成工具

    本文将深入探讨XML解析和生成工具的相关知识,以及如何利用提供的`Markup.cpp`和`Markup.h`文件进行操作。 XML的结构: XML文档由一系列元素构成,每个元素都有一个开始标签和结束标签,如 `&lt;tag&gt;` 和 `&lt;/tag&gt;`。...

    STM32解析XML

    2. **配置内存**:由于STM32F107的内存有限,可能需要调整minixml库的内存分配策略,例如预分配一定大小的内存池来处理XML解析过程中的动态内存需求。 3. **读取XML文件**:使用STM32的文件系统功能读取XML文件内容...

    MusicXML 解析与布局

    MusicXML是一种开放标准的音乐符号交换格式,它允许数字音乐...总之,"MusicXML解析与布局"项目涵盖了XML解析、数据结构设计、图形渲染、音乐理论等多个方面的知识,对于深入理解音乐和计算机科学的结合具有重要意义。

    xml.rar_XML c语言_c语言 xml_resolver_xml解析 c_解析xml

    本项目“xml.rar”正是提供了C语言编写的XML解析程序,名为“xml解析器.cpp”,旨在帮助开发者处理XML文档。 XML解析通常分为两种主要方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器会...

    java心电图xml解析.zip

    Java XML解析是Java开发中的一项重要技能,尤其是在处理结构化数据时。XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换和文档存储等领域。本压缩包“java心电图xml解析....

    适合嵌入式系统的开源XML解析器

    在嵌入式系统中,由于资源限制,往往需要轻量级且高效的XML解析器。"minixml"就是这样一个专为嵌入式系统设计的开源XML解析器,它提供DOM(Document Object Model)支持,使得开发者能够方便地处理XML文档。 mini...

    XML解析器,用于解析XML文件

    理解和熟练使用XML解析器是任何IT专业人士的必备技能之一,无论是在移动应用、Web服务还是桌面应用程序中,XML解析都发挥着关键作用。了解和掌握TinyXML这样的解析库,可以帮助开发者更高效地处理XML数据。

    XML解析支持库

    XML解析支持库则是用于处理XML文档的核心工具,它们帮助开发者有效地读取、解析、创建和操作XML数据。 在Java开发中,常见的XML解析库有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming...

    xml解析xml解析xml解析xml解析

    在本文中,我们将深入探讨XML解析的相关知识点。 XML文档结构: 1. 文档声明:`&lt;?xml version="1.0" encoding="UTF-8"?&gt;`,这是每个XML文档的开头,用于指定XML版本和字符编码。 2. 元素:XML文档由元素组成,...

    ios 简单xml解析DEMO绝对可用

    本教程将介绍如何在iOS应用中实现简单的XML解析,并提供了一个名为"UITableViewTricks"的DEMO,供开发者们参考学习。 XML文件结构清晰,易于理解,但在iOS中解析XML数据并非内置功能,需要借助第三方库或者Apple...

Global site tag (gtag.js) - Google Analytics