比较难

sAS112UUUYY111 2010-03-01 05:04:18
java用SAX方式解析XML Schema,
将元素的名称保存到数组中,
数组中存放:
note to;
note from;
note heading;
note body



------------------------------------------------------------

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.w3school.com.cn"

xmlns="http://www.w3school.com.cn"

elementFormDefault="qualified">

<xs:element name="note">

<xs:complexType>

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>





...全文
423 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘻嘻嘻_ 2010-03-19
  • 打赏
  • 举报
回复
我是打酱油的,大家继续……
小余 2010-03-19
  • 打赏
  • 举报
回复
悲剧 我只知道DOM解析~~~~SAX 不懂
sAS112UUUYY111 2010-03-19
  • 打赏
  • 举报
回复
谢谢帮助了。
sAS112UUUYY111 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 nihaozhangchao 的回复:]
从网上下的文档看看。。。google.。。。。
[/Quote]
请问什么样的文档比较合适呢?
SambaGao 2010-03-17
  • 打赏
  • 举报
回复
从网上下的文档看看。。。google.。。。。
zhangersong 2010-03-17
  • 打赏
  • 举报
回复
前来支持!!!!!!!!!!!!!!!!!!!!
sAS112UUUYY111 2010-03-16
  • 打赏
  • 举报
回复
大家来快快乐乐的帮忙吧
sAS112UUUYY111 2010-03-15
  • 打赏
  • 举报
回复
快来参与吧!
sAS112UUUYY111 2010-03-12
  • 打赏
  • 举报
回复
谁来看看?
-----------
y11111494 2010-03-10
  • 打赏
  • 举报
回复

别急先看这位仁兄的。

------------------------------------------------
引用 10 楼 qianzhimeiying 的回复:
返回的是一个List <Bean>,Bean的内部还有一个childBean的List,
在对element节点的读取上目前只考虑了2层,如果要扩展,就重写一下start,endElement方法吧

Java codeimport java.io.File;import java.util.*;import javax.xml.parsers.*;import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;publicclass Q {public Q() {
}public List readXML(String FileName)throws Exception{
SAXParserFactory spf= SAXParserFactory.newInstance();
SAXParser sp= spf.newSAXParser();

MySAXHandler handler=new MySAXHandler();
sp.parse(new File(FileName), handler);return handler.getResult();
}class MySAXHandlerextends DefaultHandler{
java.util.Stack tagStack=new java.util.Stack();
List beans=new ArrayList();
Bean bean=null;boolean complex=false;
@SuppressWarnings("unchecked")publicvoid startElement(String namespace,String localName,String qName,Attributes atts){
tagStack.push(qName);if(bean!=null){if(qName.equals("xs:complexType")){
complex=true;
}
}if(qName.equals("xs:element")){if(bean==null){
bean=new Bean();
bean.name= atts.getValue("name");
}else{
Bean child=new Bean();
child.name= atts.getValue("name");
bean.childBean.add(child);
}
}
}publicvoid endElement(String namespace,String localName,String qName){if(qName.equals("xs:complexType")){
complex=false;
}if(qName.equals("xs:element")){if(complex){
System.out.println("complex element end");
}else{
System.out.println("simple element end");
beans.add(bean);
bean=null;
complex=false;
}
}
}publicvoid characters(char[] chs,int start,int length){
String tag= (String)tagStack.peek();
String value=new String(chs,start,length);
}public List getResult(){
System.out.println(beans.size());
System.out.println(((Bean)(beans.get(0))).childBean.size());return beans;
}
}publicclass Bean{
String name;
List childBean=new ArrayList();
}publicstaticvoid main(String[] args){
String name="a.xml";
Q q=new Q();try {
q.readXML(name);
}catch (Exception e) {
e.printStackTrace();
}
}
}
zhangersong 2010-03-09
  • 打赏
  • 举报
回复
Quik-----------------------------
zhangersong 2010-03-08
  • 打赏
  • 举报
回复
确实需要好好思考,
好好好
zhangersong 2010-03-08
  • 打赏
  • 举报
回复
大家要参与呀
---------------------
sAS112UUUYY111 2010-03-05
  • 打赏
  • 举报
回复
欢迎参与
----------------------------
sAS112UUUYY111 2010-03-05
  • 打赏
  • 举报
回复
引用楼主 sas112uuuyy111 的回复:
java用SAX方式解析XML Schema,将元素的名称保存到数组中, 数组中存放: note to; note from; note heading; note body


还有其它方式的解答吗?
sAS112UUUYY111 2010-03-05
  • 打赏
  • 举报
回复
谢谢
------------------
zhangersong 2010-03-05
  • 打赏
  • 举报
回复

List element=q.readXML(name);
for(Object a:element){
System.out.println("Bean.name:"+((Bean)a).name);
for(Object b:((Bean)a).childBean){
System.out.println("childBean.name:"+((Bean)b).name);
}
}

可以试试这个
zhangersong 2010-03-05
  • 打赏
  • 举报
回复
至今还没见过用SAX解析schema xml的解法。
------------------------------------
zhangersong 2010-03-05
  • 打赏
  • 举报
回复
比较欣赏10楼
----------------------------------
sAS112UUUYY111 2010-03-05
  • 打赏
  • 举报
回复

10楼的解法中,
在解析完毕后,如果想打印获得的内容,怎么办呢?
加载更多回复(14)

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧