- 浏览: 218552 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
蓝aiq冰:
这个是在哪个包下面的啊,Maven Dependencies里 ...
geronimo-javamail_1.4_spec-1.3.jar与mail.jar 冲突解决办法 -
xuliuliu:
为什么宽度为0的时候进度条不走呢
进度条 -
songrubo:
[b][color=brown][color=yellow] ...
XSD、XSLT、DOM4J解析XML -
aguai0:
想用一下,但是有点看不懂
SQL查询语句:将一列中多个不同的值放入一行的一个单元格里 -
vishare:
非常有用,谢谢
oracle 日期 查询
xml文件 000.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="000.xsl"?>
<addresses>
<value>
<no>A100</no>
<addr>上单位dd</addr>
</value>
<value>
<no>A101</no>
<addr>ss撒发达</addr>
</value>
</addresses>
xsd文件 000.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="addresses">
<xs:complexType>
<xs:sequence>
<xs:element name="value" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="no" type="xs:string" />
<xs:element name="addr" type="addr" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="addr">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
xslt文件 000.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- XSLT 语法参考w3cschool -->
<xsl:template match="/">
<html>
<head>
<title>First XSLT example</title>
</head>
<body>
<p>
<table border='1'>
<xsl:for-each select="addresses/value">
<tr>
<td>
<xsl:value-of select="no" />
</td>
<td>
<xsl:value-of select="addr" />
</td>
</tr>
</xsl:for-each>
</table>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
bean文件 XmlBean.java
package com.zht.bean;
public class XmlBean {
private String no;
private String addr;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "编号:" + this.no + ",地址:" + this.addr;
}
}
路径文件 ReadXmlFileStream.java
package com.zht.xml;
import java.io.InputStream;
public class ReadXmlFileStream {
private static final String XML_FILE = "com/zht/bean/000.xml";
private static final String XSD_FILE = "com/zht/bean/000.xsd";
private static final String XSL_FILE = "com/zht/bean/000.xsl";
private static final String HTML_FILE = "com/zht/bean/001.HTML";
public static InputStream getXmlFileStream() {
return Thread.currentThread().getContextClassLoader()
.getResourceAsStream(XML_FILE);
}
public static String getXML_FILE() {
return XML_FILE;
}
public static String getXSD_FILE() {
return XSD_FILE;
}
public static String getXSL_FILE() {
return XSL_FILE;
}
public static String getHTML_FILE() {
return HTML_FILE;
}
}
解析xml文件 DOM4JParseXml.java
package com.zht.xml;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Iterator;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.SAXValidator;
import org.dom4j.io.XMLWriter;
import org.dom4j.util.XMLErrorHandler;
import com.zht.bean.XmlBean;
public class DOM4JParseXml {
private static XmlBean address = new XmlBean();
public static void main(String[] args) {
// 读取XML文件内容
// ---====================读xml文件========================================
long starttime = System.currentTimeMillis();
try {
InputStream in = ReadXmlFileStream.getXmlFileStream();
Reader reader = new InputStreamReader(in, "utf-8"); // 注意编码问题
SAXReader SaxReader = new SAXReader();
Document doc = SaxReader.read(reader);
Element root = doc.getRootElement();
Element childNode = null;
// 枚举名称为value的节点
for (Iterator<Element> it = root.elementIterator("value"); it.hasNext();) {
childNode = (Element) it.next();
address.setNo(childNode.elementText("no"));
address.setAddr(childNode.elementText("addr"));
System.out.println(address);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - starttime) + " 毫秒");
// ---============================================================
// 写XML文件内容
try {
testWrite();
} catch (Exception e) {
e.printStackTrace();
}
// XML经XSD文件进行校验
validateXMLByXSD();
// XML经XSLT转换为HTML文件
String xml = ReadXmlFileStream.getXML_FILE();
String xsl = ReadXmlFileStream.getXSL_FILE();
String out = ReadXmlFileStream.getHTML_FILE();
xsl(xml,out,xsl);
}
/**
* 写XML
*/
public static void testWrite() throws Exception{
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element element1 = root.addElement("user")
.addAttribute("name","Alexander")
.addAttribute("blog", "http://netnova.blogjava.net")
.addText("我是中文的名字");
XMLWriter writer = new XMLWriter(new FileOutputStream("com/zht/bean/001.xml"));
writer.write(document);
writer.close();
System.out.println("写XML文件成功~!");
}
/**
* 通过XSD(XML Schema)校验XML
*/
public static void validateXMLByXSD() {
String xmlFileName = ReadXmlFileStream.getXML_FILE();
String xsdFileName = ReadXmlFileStream.getXSD_FILE();
try {
//创建默认的XML错误处理器
XMLErrorHandler errorHandler = new XMLErrorHandler();
//获取基于 SAX 的解析器的实例
SAXParserFactory factory = SAXParserFactory.newInstance();
//解析器在解析时验证 XML 内容。
factory.setValidating(true);
//指定由此代码生成的解析器将提供对 XML 名称空间的支持。
// factory.setNamespaceAware(true);
//使用当前配置的工厂参数创建 SAXParser 的一个新实例。
SAXParser parser = factory.newSAXParser();
//创建一个读取工具
SAXReader xmlReader = new SAXReader();
//获取要校验xml文档实例
Document xmlDocument = (Document) xmlReader.read(new File(xmlFileName));
//设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在 [url]http://sax.sourceforge.net/?selected=get-set[/url] 中找到。
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", "file:" + xsdFileName);
//创建一个SAXValidator校验工具,并设置校验工具的属性
SAXValidator validator = new SAXValidator(parser.getXMLReader());
//设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。
validator.setErrorHandler(errorHandler);
//校验
validator.validate(xmlDocument);
XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());
//如果错误信息不为空,说明校验失败,打印错误信息
if (errorHandler.getErrors().hasContent()) {
System.out.println("XML文件通过XSD文件校验失败!");
writer.write(errorHandler.getErrors());
System.out.println(errorHandler.getErrors().asXML());
} else {
System.out.println("Good! XML文件通过XSD文件校验成功!");
}
} catch (Exception ex) {
System.out.println("XML文件: " + xmlFileName + " 通过XSD文件:" + xsdFileName + "检验失败。\n原因: " + ex.getMessage());
ex.printStackTrace();
}
}
/**
* 通过XSL生成HTML文件
*/
public static void xsl(String inFilename, String outFilename,
String xslFilename) {
try {
TransformerFactory factory = TransformerFactory.newInstance();
Templates template = factory.newTemplates(new StreamSource(
new FileInputStream(xslFilename)));
Transformer xformer = template.newTransformer();
Source source = new StreamSource(new FileInputStream(inFilename));
Result result = new StreamResult(new FileOutputStream(outFilename));
xformer.transform(source, result);
System.out.println("生成html成功~!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
评论
[color=brown][color=yellow] :D :) :( :o :shock: :? 8) :lol: :x :P :oops: :arrow: :idea: :?: :!: :evil: :evil: :[size=medium][/size][align=left][/align]evil: :evil: [/color][/color][flash=200,200][/flash]
发表评论
-
mysql 5.7 zip版安装
2016-12-29 22:39 7350、下载并解压zip版mysql 1、添加环境变量path ... -
My97DatePicker时间控件使用
2014-09-04 14:44 797My97DatePicker时间控件使用 -
java 自定义信息 生成验证码
2013-10-31 19:26 862java 自定义信息 生成验证码 页面显示方式:查 ... -
图片 Base64 格式 字符串转换
2013-10-14 15:28 12963//Java 部分 package com.zht; ... -
java 通过调用JDBC连接Oracle;执行SQL*PlUS 导入sql脚本
2013-03-06 23:51 6877package com.zht; import java. ... -
Hibernate、Spring、Struts、DWR 配置 复习学习
2011-10-05 13:24 1133Hibernate、Spring、Struts、DWR ... -
dwr 前台传递与接收TimesTamp时间戳类型数据
2011-08-10 22:18 45201/model//-----定义model class,其中包 ... -
前台向DWR传递map/list,返回list/map到前台操作方法
2011-08-10 00:37 3491向DWR传递map/list,返回list/map操作方法 ... -
geronimo-javamail_1.4_spec-1.3.jar与mail.jar 冲突解决办法
2010-11-10 17:33 6088geronimo-javamail_1.4_spec-1.3. ... -
java 正则表达式 搜索文件
2010-09-26 15:36 1551import java.util.ArrayList;impo ... -
路径的获得方法
2010-08-17 18:11 1092获取路径的方法: System.out.print ... -
Tomcat内存溢出问题的处理方法
2010-07-29 08:43 1043当Tomcat启动动时若发生如下问题时(上网参考) ... -
整合 Spring 和 Strust2 一起工作
2010-07-14 09:55 788关键字: struts2 spring 在Struts2中 ... -
StAX解析XML
2010-06-05 17:21 1258Java代码 package com.xm ... -
JDOM解析XML
2010-06-05 17:19 884Java代码 package com.xm ... -
DOM4J解析XML
2010-06-05 17:18 1055Java代码 package com.xm ... -
SAX解析XML
2010-06-05 17:18 1487Java代码 package com.xm ... -
DOM解析XML
2010-06-05 17:15 953Java代码 package com.xm ... -
JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之详解与比较
2010-06-05 17:10 15241.各种方式的详解 1)DOM ... -
JAVA m和n的最大公约数和最小公倍数
2009-09-28 20:07 3672public class Test { p ...
相关推荐
对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible ...
对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible ...
REPORT zams_xml_dom_create . TYPE-POOLS: ixml. CLASS cl_ixml DEFINITION LOAD. TYPES: BEGIN OF xml_line, data(256) TYPE x, END OF xml_line. DATA: l_ixml TYPE REF TO if_ixml, l_streamfactory TYPE...
对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible ...
\r\n 1.1 XML入门 \r\n 1.1.1 自描述数据 \r\n 1.1.2 基本术语 \r\n 1.1.3 XML文档的组成部分 \r\n 1.2 XML技术 \r\n 1.2.1 DTD \r\n 1.2.2 XDR \r\n 1.2.3 XSD \r\n 1.2.4 XSLT \r\n 1.2.5 XML DOM \r\n...
C# XML入门经典——C#编程人员必备的XML技能 作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出版社:清华大学出版社 出版时间:2003年11月 第1章 在C#中使用XML的原因 <br>1.1 使用XML的原因...
XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件...
安装composer require veewee/xml组件 :通过DOM API在XML文档上进行操作。 :提供安全处理XML所需的工具。 :内存安全的XML阅读器。 :用于处理XSD架构的工具。 :将XML文档转换为其他内容。路线图这些组件尚未实现...
XSLT-没有DOM =没有查询。 100%兼容(某些其他SAX实施)-大多数SAX实施均使用Java进行,其功能远不止于此。 XML验证程序-在严格模式下,它会进行少量验证,但不会进行太多验证。 模式意识XSD事物-模式是恋物癖...
Microsoft Core XML Services (MSXML) 6.0 发行版提供以下项目的标准实现:XML 1.0(DOM 和 SAX2 API) XML Schema (XSD) 1.0 XPath 1.0 XSLT 1.0此外,还基于 HTTP 提供客户端和服务器安全的 XML 组件。MSXML6 还是...
2. 采用DOM生成符合StudentList.xsd要求的XML文档2除写入Assignment1中的XML文档1的同学信息外, 还需要加入小组中其他同学的相关信息,并为每位同学随机生成五门课程的成绩(包含平时成绩、期末成绩和总评成绩),...
13.1.2 XSD/XML模式定义 420 13.1.3 在Visual Studio .NET 2005中编辑XML和XML模式 422 13.2 XmlReader和XmlWriter 425 13.2.1 使用模式和XmlTextReader 427 13.2.2 包含NameTable优化 429 13.2.3 从XML中提取...