当前位置: 技术问答>java相关
给多少是多呢?(关于JAXP的访问XML节点的初级问题)
来源: 互联网 发布时间:2015-06-02
本文导语: 我在JDK1.4下弄了一个东西: import java.io.*; import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; public class ParseXmlTree { DocumentBuilderFactor...
我在JDK1.4下弄了一个东西:
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class ParseXmlTree
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstace();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("test.xml");
doc.normalize();
//取得根节点
Element root=new Element();
root=doc.getDocumentElement();
System.out.println(root);
}
我的XML文档名为text.xml在它同一目录下.
我首先想问的是我导入的类有没有错?
另外为了证明我取得的根节点正确,我想把它输出好让我看一看,我该怎么弄?我的ROOT那个地方设的对吗?
请问,JB6里是不是集成了JAXP?在那可以写这些吗?有没有向导?
谢谢各位!
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class ParseXmlTree
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstace();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("test.xml");
doc.normalize();
//取得根节点
Element root=new Element();
root=doc.getDocumentElement();
System.out.println(root);
}
我的XML文档名为text.xml在它同一目录下.
我首先想问的是我导入的类有没有错?
另外为了证明我取得的根节点正确,我想把它输出好让我看一看,我该怎么弄?我的ROOT那个地方设的对吗?
请问,JB6里是不是集成了JAXP?在那可以写这些吗?有没有向导?
谢谢各位!
|
JSPㄏノXMLㄒ肈
_______________________________________
//==================== SAXHandler.java ======================
import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;
public class SAXHandler extends HandlerBase
{
private Hashtable table = new Hashtable();
private String currentElement = null;
private String currentValue = null;
public void setTable(Hashtable table)
{
this.table = table;
}
public Hashtable getTable()
{
return table;
}
public void startElement(String tag, AttributeList attrs)
throws SAXException
{
currentElement = tag;
}
public void characters(char[] ch, int start, int length)
throws SAXException
{
currentValue = new String(ch, start, length);
}
public void endElement(String name) throws SAXException
{
if (currentElement.equals(name))
table.put(currentElement, currentValue);
}
}
_________________________
//=================== XmlTest.java ===========================
import java.io.*;
import java.util.Hashtable;
import java.util.Enumeration;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
public class XmlTest
{
public static void main (String argv []) throws IOException
{
if (argv.length!=1)
{
System.err.println ("USAGE: java XmlTest filename");
System.exit(1);
}
try
{
//String xmlResource = "file:" + new File(argv[0]).getAbsolutePath();
String filename = argv[0];
File file = new File(filename);
FileReader reader = new FileReader(file);
Parser parser;
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
SAXHandler handler = new SAXHandler();
sp.parse(new InputSource(reader), handler);
Hashtable cfgTable = handler.getTable();
System.out.println("ID == " +
(String)cfgTable.get(new String("ID")));
System.out.println("DESCRIPTION == " +
(String)cfgTable.get(new String("DESCRIPTION")));
System.out.println("PRICE == " +
(String)cfgTable.get(new String("PRICE")));
System.out.println("QUANTITY == " +
(String)cfgTable.get(new String("QUANTITY")));
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(0);
}
}
|
关于jaxp的sax,dom,程序员2001有一期(记得是蓝面子)讲的比较好,建议看一下.
JB6是集成了JAXP.没有向导.
JB6是集成了JAXP.没有向导.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。