君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理

2013年5月15日 #

摘要: Web 服务的定义Web 服务是一种新型的 Web 应用程序。它们是自适应、自我描述、模块化的应用程序,这些应用程序可以跨越Web 进行发表、定位和调用。Web 服务所执行的功能可以是从简单的请求到复杂的商业过程中的任何事。简单的Web 服务可以提供股票报价或处理信用卡交易。一旦部署了 Web 服务,其它的应用 程序(及其它的 Web 服务)可以发现和调用所部署的服务因为 Web 服务要满足所有这些需要,所以,有两个技术是关键的:XMLXML 对于 Web 中移动的结构化数据是非常重要的技术。如果 Web 要以可靠的、 自动的方式处理数据,那么 HTML 文档是满足不了此要求的。如果数据是以 阅读全文
posted @ 2013-05-15 18:39 刺猬的温驯 阅读(112) 评论(0) 推荐(0) 编辑

摘要: DOM基础在开始使用 DOM 之前,了解它实际表示什么是值得的。DOM Document 是以层次结构组织起来的节点,或信息片段,的集合。这种层次结构允许开发 者浏览树来查找特定信息。通常,分析结构需要在完成任何工作之前装入整个 文档并且装入层次结构。由于 DOM 是基于信息的层次结构,因此它被称为是基于树的。对于极其大的文档,装入整个文档并对该文档进行解析会很慢且占用大量资源, 所以要用其它方式来处理数据。一些基于事件的模型,如 Simple API for XML(SAX),是工作在数据流之上,在数据流经过时对其进行处理。基于事件 的 API 消除了在内存中构建数据树的需要,但它不允许开发 阅读全文
posted @ 2013-05-15 18:38 刺猬的温驯 阅读(179) 评论(0) 推荐(0) 编辑

摘要: 什么是 SAX读取和操纵 XML 文件的标准方法是 DOM(“文档对象模型”)。遗憾的是,这种方法需要读取整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。一种替代方法是使用 Simple API for XML 或 SAX。SAX 允许正在读取 文档时处理该文档,这避免了在采取操作之前需要等待存储文档的所有内容。SAX 是由 XML-DEV 邮件列表的成员开发的,Java 版本由 David Megginson 维护。他们的目的是提供一种更自然的方法来使用 XML, 这种方法不会涉及到使用 DOM 的那种开销。结果是基于事件的 API。解析器将事件(譬如,元素的开始或结束 阅读全文
posted @ 2013-05-15 18:37 刺猬的温驯 阅读(136) 评论(0) 推荐(0) 编辑

摘要: Parser基础一个 XML Parser(解析器)是一段可以读入一个文档并分析其结构的代码。在本章节,我们将讨论如何使用一个 XML 解析器来读入一个 XML 文档。我们也将讨论不同类型的解析器以及您在何时使用它们。回页首如何使用一个解析器通常而言,使用一个解析器需要如下步骤:创建一个解析器对象将您的 XML 文档传递给解析器处理结果构建一个 XML 应用显然远远超出这些,但通常一个 XML 的应用将包含这些流程。回页首解析器种类有不同的方法来划分解析器种类:验证或非验证解析器支持 Document Object Model (DOM) 的解析器支持 Simple API for XML ( 阅读全文
posted @ 2013-05-15 18:36 刺猬的温驯 阅读(197) 评论(0) 推荐(0) 编辑

摘要: 用XPath精确定位节点元素在利用XSL进行转换的过程中,匹配的概念非常重要。在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select = "" 中,用引号括起来的部分必须能够精确地定位节点。具体的定位方法则在XPath中给出。之所以要在XSL中引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确 地找到某一个节点元素。可以把XPath比作文件管理路径:通过文件管理路径,可以 按照一定的规则查找到所需要的文件;同样,依据XPath所制定的规则,也可以很方 便地找到XML 阅读全文
posted @ 2013-05-15 18:34 刺猬的温驯 阅读(159) 评论(0) 推荐(0) 编辑

摘要: 什么是样式单对于一批XML数据,应用处理程序要综合XML文档、文档类型说明(Dtd/Schema) 以及样式单三方面要素来处理和显示它。在XML文档中只包含了数据信息,并没有涉及文档如何显示。不错,制定XML标准的 目的是要使数据结构化,赋予其明确的语意,使之易于进行数据交换。XML早已不再 把目光局限在文字图象的显示上,而是要建立它们之间的内在关系。可以说,XML文 档本身是重内容而不重形式。可是,XML结构化地组织信息固然好,但如果不加修饰地把一大堆枯燥的数据摆在那里,也足以令人眼花头痛。样式单(StyleSheet)是一种专门描述结构文档表现方式的文档,它既可以描述这些 文档如何在屏幕上 阅读全文
posted @ 2013-05-15 18:33 刺猬的温驯 阅读(281) 评论(0) 推荐(0) 编辑

摘要: 为何引入名称空间?XML的用途不是单一的。虽然读者可能看到编写只使用一个标记符号集的文档是相当 有用的。但是,问题是,当混杂和匹配不同的XML应用程序的标记时,可能会发现同一个标记 已用于两个不同对象。TITLE是指页标题还是书的标题?ADDRESS是指公司的邮件地 址还是Web站点管理人员的电子邮件地址?名称空间(namespace)可以解决这些诸 如此类的问题,它是将URI与各标记集相关联,并在每个元素前加上一个前缀,以表 示它属于哪个标记集。于是,就可以有BOOK:TITLE和HTML:TITLE两个元素或 POSTAL:ADDRESS和HTML:ADDRESS元素,而不只一类TITLE 阅读全文
posted @ 2013-05-15 18:32 刺猬的温驯 阅读(135) 评论(0) 推荐(0) 编辑

摘要: 内部Dtd一个“有效的”文件首先应该是“形式良好”的。但这还远远不够,它还要往前更进一 步。一个XML文件必须遵守文件类型描述Dtd(Document Type Definition)中 定义的种种规定。所有的文件都是由序言和文件体构成的。序言中包含了XML声明, 在序言中还可以包含Dtd定义。最简单的使用Dtd的方法是在XML文件的序言部分加入一个Dtd描述,加入的位置是 紧接在XML处理指示之后。一个包含Dtd的XML文件的结构为:<?xml version = "1.0" encoding="Gb2312" standalone = &quo 阅读全文
posted @ 2013-05-15 18:31 刺猬的温驯 阅读(196) 评论(0) 推荐(0) 编辑

摘要: 什么是XMLXML即为可扩展的标记语言(eXtensible Markup Language)。XML是一套定义语义标记的 规则,这些标记将文档分成许多部件并对这些部件加以标识。XML是标记语言。理解XML,首先要理解标记。先说说HTML的标记(Markup),通俗地讲,它 就是一种用来给文本添加标记的语言。在HTML里每个标志都是有确切含义的。例如,在HTML 中,标签〈B〉的含义是要求HTML浏览器将一段文本加粗表示,而标签〈CENTER〉的含义是告 诉浏 览器将这段文本在一行的中间显示。而XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这 个标准,你可 阅读全文
posted @ 2013-05-15 18:30 刺猬的温驯 阅读(209) 评论(0) 推荐(0) 编辑

摘要: package testlucene;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.io.StringReader;import java.io.UnsupportedEncodingException;import javax.xml.parsers.ParserConf 阅读全文
posted @ 2013-05-15 18:10 刺猬的温驯 阅读(341) 评论(0) 推荐(0) 编辑

摘要: 读取和操纵 XML 文件的标准方法是 DOM(“文档对象模型”)。遗憾的是,这种方法需要读取整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。什么是 SAX 读取和操纵 XML 文件的标准方法是 DOM(“文档对象模型”)。遗憾的是,这种方法需要读取整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。 一种替代方法是使用 Simple API for XML 或 SAX。SAX 允许正在读取文档时处理该文档,这避免了在采取操作之前需要等待存储文档的所有内容。 SAX 是由 XML-DEV 邮件列表的成员开发的,Java 版本由 David Meggins. 阅读全文
posted @ 2013-05-15 17:57 刺猬的温驯 阅读(213) 评论(0) 推荐(0) 编辑

摘要: 如何使用Groovy解析无法通过XML验证的HTML代码原文:Robust HTML parsing the Groovy way用Groovy解析XML很简单,只要确保输入的数据格式良好就能运行的很好——但现实并非总是能保证这一点。视考虑HTML代码,想让它们通过XML的验证总是困难重重,这就需要TagSoup来拯救了。主要的阻碍来自于:DTD未闭合的标签让我们通过一个简单的脚本来演示解析StackOverflow 的页面[java]view plaincopydefslurper=newXmlSlurper()defhtmlParser=slurper.parse("http:/ 阅读全文
posted @ 2013-05-15 17:05 刺猬的温驯 阅读(1179) 评论(0) 推荐(0) 编辑

摘要: Namespace 問題在上一篇文章『HTML 資訊汲取(中篇) - Default namespace 問題』中提到:在 XPath 中,沒有所謂 default namespace (預設命名空間)。若 XPath 路徑未使用 prefix (前置字符) 指明 namespace,則其對應的 namespace 為 empty namespace (空命名空間)。因此,若在 XML 文件中定義了 default namespace,則所有的標籤必定都歸屬於某個不為空的 namespace。此時,未指明 namespace 的 XPath 路徑,將對應不到任何元素。另一方面,TagSoup 阅读全文
posted @ 2013-05-15 16:59 刺猬的温驯 阅读(632) 评论(0) 推荐(0) 编辑

摘要: 在上一篇文章『HTML 資訊汲取(上篇) - 使用 JDOM 、 TagSoup 及 XPath』裡,我提到了如何利用 JDOM 搭配 TagSoup,並使用 XPath 簡單地汲取資訊。其實,在上一篇的範例裡,我刻意避開了兩個困擾許多人的問題:namespace(命名空間)問題以及TagSoup 的輸出問題。Namespace 問題再看一下上一篇出現的新聞標題:<spanclass="titletext">曾雅妮的魔幻數字與粉紅色</span>假設,除了 span 之外,還有其他標籤,譬如 h4,也具有 titletext 類別,但是只有 span 阅读全文
posted @ 2013-05-15 16:58 刺猬的温驯 阅读(1119) 评论(0) 推荐(0) 编辑

摘要: 簡介本文將以實際範例介紹如何以 JDOM 搭配 TagSoup ,將 HTML 解析為 DOM 文件物件模型,並使用 XPath 汲取資訊,或者將文件輸出為 XHTML 格式。資訊汲取Internet 上蘊藏著豐富的內容,供人們分享訊息、傳承知識。但是在 Semantic Web 普及之前,除非資料來源網站主動提供資料存取 API,否則,要擷取既有 Internet 上的資訊,還是只能從解析 HTML 著手。雜亂無章的 HTML (Malformed and faulty HTML)但是眾所週知,即使存在著如 XHTML 標準規範,網路上還是充斥著各種不合乎標準的 HTML 網頁。這個現象,甚 阅读全文
posted @ 2013-05-15 05:10 刺猬的温驯 阅读(743) 评论(0) 推荐(0) 编辑