补充:用SAX实现也可以,要求源代码!(不要DOM和dom4j实现的)
解决方案 »
- JBPM4 No unnamed transitions were found for the task 'XXXX'. 异常
- weblogic中ejb3远程、本地接口问题
- 求缓存或内存管理软件
- java 后台输出js message
- java socket 多线程客户端传递文件问题
- 修改Web Context-root后访问路径变化的问题
- 各位大哥我对xml文件不是很熟悉我有这样一个xml文件请问怎样解析
- DWR动态二级联动,怎么页面获取不到数据??急急急!!
- 小弟初学Junit,请高手指点
- webservice 出错(鸡毛帖),散分
- 请问Tomcat5.0的servlet存放在什么目录下?
- 要调用这个servlet,在tomcat5.0中要做那些设置(附代码)?
你看看,
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.sql.*;
import org.apache.crimson.tree.*;public class WriterXml { public static void ha() {
System.out.println("ahahahhaha");
}
public static void main(String[] args) {
Document doc = null;
Element students;
Element stud;
Element fName;
Element sName;
try {
DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
doc = dBuilder.newDocument(); stud = doc.createElement("Student");
fName = doc.createElement("FirstName");
fName.appendChild(doc.createTextNode("Chen"));
stud.appendChild(fName);
sName = doc.createElement("Surname");
sName.appendChild(doc.createTextNode("Liancong"));
stud.appendChild(sName);
students = doc.createElement("Students");
students.setAttribute("Department","Mathematics"); students.appendChild(stud);
doc.appendChild(students);
//((XmlDocument)doc).write(System.out);
((XmlDocument)doc).write(new FileOutputStream("d:\\a.txt"));
}catch(Exception e) {
e.printStackTrace();
}
}
}
@version 1.00 2001-09-24
@author Cay Horstmann
*/import java.awt.*;
import java.awt.geom.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
/**
This program shows how to write an XML file. It saves
a file describing a modern drawing in SVG format.
*/
public class XMLWriteTest
{
public static void main(String[] args)
{
XMLWriteFrame frame = new XMLWriteFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}/**
A frame with a panel for showing a modern drawing.
*/
class XMLWriteFrame extends JFrame
{
public XMLWriteFrame()
{
setTitle("XMLWriteTest");
setSize(WIDTH, HEIGHT); // add panel to frame panel = new RectanglePanel();
Container contentPane = getContentPane();
contentPane.add(panel); // set up menu bar JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar); JMenu menu = new JMenu("File");
menuBar.add(menu); JMenuItem newItem = new JMenuItem("New");
menu.add(newItem);
newItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
panel.newDrawing();
}
}); JMenuItem saveItem = new JMenuItem("Save");
menu.add(saveItem);
saveItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
try
{
saveDocument();
}
catch (TransformerException exception)
{
JOptionPane.showMessageDialog(
XMLWriteFrame.this, exception.toString());
}
catch (IOException exception)
{
JOptionPane.showMessageDialog(
XMLWriteFrame.this, exception.toString());
}
}
}); JMenuItem exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
}); } /**
Saves the drawing in SVG format.
*/
public void saveDocument()
throws TransformerException, IOException
{
JFileChooser chooser = new JFileChooser();
if (chooser.showSaveDialog(this) != JFileChooser.APPROVE_OPTION)
return;
File f = chooser.getSelectedFile();
Document doc = panel.buildDocument();
Transformer t = TransformerFactory
.newInstance().newTransformer(); t.setOutputProperty("doctype-system",
"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd"
);
t.setOutputProperty("doctype-public",
"-//W3C//DTD SVG 20000802//EN"); t.transform(new DOMSource(doc),
new StreamResult(new FileOutputStream(f)));
} public static final int WIDTH = 300;
public static final int HEIGHT = 200; private RectanglePanel panel;
}/**
A panel that shows a set of colored rectangles
*/
class RectanglePanel extends JPanel
{
public RectanglePanel()
{
rects = new ArrayList();
colors = new ArrayList();
generator = new Random(); DocumentBuilderFactory factory
= DocumentBuilderFactory.newInstance();
try
{
builder = factory.newDocumentBuilder();
}
catch (ParserConfigurationException exception)
{
exception.printStackTrace();
}
} /**
Create a new random drawing.
*/
public void newDrawing()
{
int n = 10 + generator.nextInt(20);
rects.clear();
for (int i = 1; i <= n; i++)
{
int x = generator.nextInt(getWidth());
int y = generator.nextInt(getHeight());
int width = generator.nextInt(getWidth() - x);
int height = generator.nextInt(getHeight() - y);
rects.add(new Rectangle(x, y, width, height));
int r = generator.nextInt(256);
int g = generator.nextInt(256);
int b = generator.nextInt(256);
colors.add(new Color(r, g, b));
}
repaint();
} public void paintComponent(Graphics g)
{
if (rects.size() == 0) newDrawing();
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g; // draw all rectangles
for (int i = 0; i < rects.size(); i++)
{
g2.setColor((Color)colors.get(i));
g2.fill((Rectangle2D)rects.get(i));
}
} /**
Creates an SVG document of the current drawing.
@return the DOM tree of the SVG document
*/
public Document buildDocument()
{ Document doc = builder.newDocument();
Element svgElement = doc.createElement("svg");
doc.appendChild(svgElement);
svgElement.setAttribute("width", "" + getWidth());
svgElement.setAttribute("height", "" + getHeight());
for (int i = 0; i < rects.size(); i++)
{
Color c = (Color)colors.get(i);
Rectangle2D r = (Rectangle2D)rects.get(i);
Element rectElement = doc.createElement("rect");
rectElement.setAttribute("x", "" + r.getX());
rectElement.setAttribute("y", "" + r.getY());
rectElement.setAttribute("width", "" + r.getWidth());
rectElement.setAttribute("height", "" + r.getHeight());
rectElement.setAttribute("fill", colorToString(c));
svgElement.appendChild(rectElement);
} return doc;
} /**
Converts a color to a hex value.
@param c a color
@return a string of the form #rrggbb
*/
private static String colorToString(Color c)
{
StringBuffer buffer = new StringBuffer();
buffer.append(Integer.toHexString(
c.getRGB() & 0xFFFFFF));
while(buffer.length() < 6) buffer.insert(0, '0');
buffer.insert(0, '#');
return buffer.toString();
} private ArrayList rects;
private ArrayList colors;
private Random generator;
private DocumentBuilder builder;
}