- 浏览: 756983 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (396)
- JAVA (50)
- ORACLE (22)
- HIBERNATE (1)
- SPRING (26)
- STRUTS (4)
- OTHERS (0)
- MYSQL (11)
- Struts2 (16)
- JS (33)
- Tomcat (6)
- DWR (1)
- JQuery (26)
- JBoss (0)
- SQL SERVER (0)
- XML (10)
- 生活 (3)
- JSP (11)
- CSS (5)
- word (1)
- MyEclipse (7)
- JSTL (1)
- JEECMS (2)
- Freemarker (8)
- 页面特效 (1)
- EXT (2)
- Web前端 js库 (2)
- JSON http://www.json.org (3)
- 代码收集 (1)
- 电脑常识 (6)
- MD5加密 (0)
- Axis (0)
- Grails (1)
- 浏览器 (1)
- js调试工具 (1)
- WEB前端 (5)
- JDBC (2)
- PowerDesigner (1)
- OperaMasks (1)
- CMS (1)
- Java开源大全 (2)
- 分页 (28)
- Eclipse插件 (1)
- Proxool (1)
- Jad (1)
- Java反编译 (2)
- 报表 (6)
- JSON (14)
- FCKeditor (9)
- SVN (1)
- ACCESS (1)
- 正则表达式 (3)
- 数据库 (1)
- Flex (3)
- pinyin4j (2)
- IBATIS (3)
- probe (1)
- JSP & Servlet (1)
- 飞信 (0)
- AjaxSwing (0)
- AjaxSwing (0)
- Grid相关 (1)
- HTML (5)
- Guice (4)
- Warp framework (1)
- warp-persist (1)
- 服务器推送 (3)
- eclipse (1)
- JForum (5)
- 工具 (1)
- Python (1)
- Ruby (1)
- SVG (3)
- Joda-Time日期时间工具 (1)
- JDK (3)
- Pushlet (2)
- JSP & Servlet & FTP (1)
- FTP (6)
- 时间与效率 (4)
- 二维码 (1)
- 条码/二维码 (1)
最新评论
-
ctrlc:
你这是从web服务器上传到FTP服务器上的吧,能从用户电脑上上 ...
jsp 往 FTP 上传文件问题 -
annybz:
说的好抽象 为什么代码都有两遍。这个感觉没有第一篇 和第二篇 ...
Spring源代码解析(三):Spring JDBC -
annybz:
...
Spring源代码解析(一):IOC容器 -
jie_20:
你确定你有这样配置做过测试? 请不要转载一些自己没有测试的文档 ...
Spring2.0集成iReport报表技术概述 -
asd51731:
大哥,limit传-1时出错啊,怎么修改啊?
mysql limit 使用方法
说明:
1,程序需要安装第三方jar包,即xom的jar包可以在http://www.cafeconleche.org/XOM/找到相关下载链接进行下载
2,程序分为三部分,CreateMapXml.java是这个小demo的核心处理程序,封装了对mapdata.xml文件中相关内容的插入查找删除等行为。mapdata.xml文件的根节点为<map>,它下面是
<mapdata>
<positionID>1c</positionID>
<longitude>1c</longitude>
<latitude>1c</latitude>
</mapdata>
大体结构就是这样的。InputGui.java是demo的界面类,并自带主函数,主要显示了输入的区域标识,经度,纬度,在输入区域标识值触发信息查找事件,如果存在匹配值则在经度纬度输入框内即可显示相关信息,添加/修改按钮也会变为修改,删除按钮可用,已完成对信息的修改,如果没有匹配内容,则按钮不可编辑,直到用户输入完整的新的id,经纬度等信息后,按钮会变为添加,其余自验吧,嘿嘿
3,直接贴代码了.....
//InputGui.java
package mapData;
import static gui.SwingConsole.run;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.ParsingException;
import nu.xom.ValidityException;
public class InputGui extends JFrame {
private JButton
b1 = new JButton("修改/添加"),
b2 = new JButton("删除");
private JTextField
t1 = new JTextField(20),
t2 = new JTextField(20),
t3 = new JTextField(20);
private JLabel
label1 = new JLabel("ID"),
label2 = new JLabel("经度"),
label3 = new JLabel("纬度");
private String s = "";
private UpperCaseDocument ucd1 = new UpperCaseDocument();
private UpperCaseDocument ucd2 = new UpperCaseDocument();
private UpperCaseDocument ucd3 = new UpperCaseDocument();
public InputGui() {
t1.setDocument(ucd1);
ucd1.addDocumentListener(new T1());
t2.setDocument(ucd2);
ucd2.addDocumentListener(new T2());
t3.setDocument(ucd3);
ucd3.addDocumentListener(new T2());
b1.addActionListener(new B1());
b2.addActionListener(new B2());
/*t1.addActionListener(new T1A());*/
setLayout(new GridLayout(4,2));
add(label1);
add(t1);
add(label2);
add(t2);
add(label3);
add(t3);
add(b1);
add(b2);
b1.setEnabled(false);
b2.setEnabled(false);
}
class T1 implements DocumentListener {
public void changedUpdate(DocumentEvent e) {
}
public void insertUpdate(DocumentEvent e) {
//t2.setText(t1.getText());
//t3.setText("Text: " + t1.getText());
//b1.setEnabled(false);
try {
MapBean mapMessage = (new CreateMapXml()).searchElement(t1.getText());
if((mapMessage.getLatitude()!=null)
&&(mapMessage.getLongitude()!=null)
&&(!mapMessage.getLatitude().equals(""))
&&(!mapMessage.getLongitude().equals(""))){
t2.setText(mapMessage.getLongitude());
t3.setText(mapMessage.getLatitude());
b1.setText("修改");
b1.setEnabled(false);
b2.setEnabled(true);
}else{
b1.setText("添加");
t2.setText("");
t3.setText("");
b1.setEnabled(false);
b2.setEnabled(false);
}
} catch (ValidityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParsingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public void removeUpdate(DocumentEvent e) {
try {
MapBean mapMessage = (new CreateMapXml()).searchElement(t1.getText());
if((mapMessage.getLatitude()!=null)
&&(mapMessage.getLongitude()!=null)
&&(!mapMessage.getLatitude().equals(""))
&&(!mapMessage.getLongitude().equals(""))){
t2.setText(mapMessage.getLongitude());
t3.setText(mapMessage.getLatitude());
b1.setText("修改");
b1.setEnabled(false);
b2.setEnabled(true);
}else{
b1.setText("添加");
t2.setText("");
t3.setText("");
b1.setEnabled(false);
b2.setEnabled(false);
}
} catch (ValidityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParsingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
class T2 implements DocumentListener {
public void changedUpdate(DocumentEvent e) {}
public void insertUpdate(DocumentEvent e) {
if((t1.getText()!=null)
&&(t2.getText()!=null)
&&(t3.getText()!=null)
&&(!t1.getText().equals(""))
&&(!t2.getText().equals(""))
&&(!t3.getText().equals(""))){
b1.setEnabled(true);
}
}
public void removeUpdate(DocumentEvent e) {
if((t1.getText()!=null)
&&(t2.getText()!=null)
&&(t3.getText()!=null)
&&(!t1.getText().equals(""))
&&(!t2.getText().equals(""))
&&(!t3.getText().equals(""))){
b1.setEnabled(true);
}
}
}
class B1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String id = t1.getText();
String longitude = t2.getText();
String latitude = t3.getText();
if (b1.getText().equals("添加")){
try {
(new CreateMapXml()).doInsertElement(id, longitude, latitude);
b1.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(b1.getText().equals("修改")){
try {
(new CreateMapXml()).changeElement(id, longitude, latitude);
b1.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
class B2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String id = t1.getText();
try {
(new CreateMapXml()).deleteElement(id);
b2.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
t1.setText("");
t2.setText("");
t3.setText("");
}
}
public static void main(String[] args) {
run(new InputGui(), 375, 200);
}
}
class UpperCaseDocument extends PlainDocument {
private boolean upperCase = true;
public void setUpperCase(boolean flag) {
upperCase = flag;
}
public void insertString(int offset, String str, AttributeSet attSet)
throws BadLocationException {
if (upperCase)
//str = str.toUpperCase();
super.insertString(offset, str, attSet);
}
} // /:~
//CreateMapXml.java
package mapData;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Elements;
import nu.xom.ParsingException;
import nu.xom.Serializer;
import nu.xom.ValidityException;
public class CreateMapXml {
private MapBean mapMessage = new MapBean();
private static String xmlRoot = "map"; //xml文件的root节点
private String xmlMapData="mapdata"; //对应mapdata标签
static Element root = new Element(xmlRoot);
public CreateMapXml(){}
public CreateMapXml(MapBean mapMessage){
//含有MapBean的构造函数
this.mapMessage = mapMessage;
}
public void addToRoot(Element e){
//将子标签添加到root标签下
root.appendChild(e);
}
public static void format(OutputStream os, Document doc) throws Exception {
//格式化xml文件书写格式,如缩进等
Serializer serializer = new Serializer(os, "UTF-8");
serializer.setIndent(4);
//设置不同级别标签间的缩进长度
serializer.setMaxLength(100);
//设置每行默认最大长度
serializer.write(doc);
//将文档写入输出流
serializer.flush();
}
public Element insertElement(MapBean mapMessage){
//向骨架中插入positionID,longitude,latitude标签及元素
Element mapdata = new Element(xmlMapData);
//声明三个标签的父标签
Element positionIDEle = new Element(MapBean.POSITIONID);
positionIDEle.appendChild(mapMessage.getPositionID());
//声明positionID标签并添加内容
Element longitudeEle = new Element(MapBean.LONGITUDE);
longitudeEle.appendChild(mapMessage.getLongitude());
//声明longitude标签并添加内容
Element latitudeEle = new Element(MapBean.LATITUDE);
latitudeEle.appendChild(mapMessage.getLatitude());
//声明latitude标签并添加内容
mapdata.appendChild(positionIDEle);
mapdata.appendChild(longitudeEle);
mapdata.appendChild(latitudeEle);
//将三个标签与其父标签关联
return mapdata;
}
public Element insertElement(String positionID, String longitude, String latitude){
MapBean mapMessage = new MapBean( positionID, longitude, latitude);
//调用insertElement(MapBean)
Element mapdata = insertElement(mapMessage);
return mapdata;
}
public void doInsertElement(String positionID, String longitude, String latitude) throws Exception{
//封装insertElement(),提高内聚性
Element e = this.insertElement(positionID, longitude, latitude);
//将xml结构的MapBean实例写入Element,形成一个元素树块,相当于一个子块
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
root.insertChild(e, 1);
//在根节点处插入Element实例
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里写入文件
}
public void doInsertElement(MapBean mapMessage) throws Exception{
//封装insertElement(),提高内聚性
this.doInsertElement(mapMessage.getPositionID(), mapMessage.getLongitude(), mapMessage.getLatitude());
}
public void changeElement(String positionID, String longitude, String latitude) throws Exception{
//将符合positionID的相关信息更改longitude和latitude
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
//这个方法太笨了,有待改进...
eleTemp = e.getFirstChildElement("longitude");
eleTemp.removeChild(0);
eleTemp.appendChild(longitude);
//将原有经度数据去除并添加新数据
eleTemp = e.getFirstChildElement("latitude");
eleTemp.removeChild(0);
eleTemp.appendChild(latitude);
//将原有纬度数据去除并添加新数据
}
//System.out.println(ele.getValue());
}
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里并写入文件
}
public void deleteElement(String positionID) throws Exception{
//将符合positionID的相关信息删除信息
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
e.removeChildren();
root.removeChild(e);
break;
}
}
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里并写入文件
}
public MapBean searchElement(String positionID) throws ValidityException, ParsingException, IOException{
//查询符合positionID的相关信息
MapBean mapMessage = new MapBean();
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
mapMessage.setPositionID(eleTemp.getValue());
eleTemp = e.getFirstChildElement("longitude");
mapMessage.setLongitude(eleTemp.getValue());
eleTemp = e.getFirstChildElement("latitude");
mapMessage.setLatitude(eleTemp.getValue());
break;
}
}
//将返回结果存入MapBean对象内
return mapMessage;
}
}
//: net/mindview/util/SwingConsole.java
// Tool for running Swing demos from the
// console, both applets and JFrames.
package gui;
import javax.swing.*;
public class SwingConsole {
public static void
run(final JFrame f, final int width, final int height) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
f.setTitle(f.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(width, height);
f.setVisible(true);
}
});
}
} ///:~
o了,刚开始写技术性文章,有些乱,见谅... <!--v:3.2-->
1,程序需要安装第三方jar包,即xom的jar包可以在http://www.cafeconleche.org/XOM/找到相关下载链接进行下载
2,程序分为三部分,CreateMapXml.java是这个小demo的核心处理程序,封装了对mapdata.xml文件中相关内容的插入查找删除等行为。mapdata.xml文件的根节点为<map>,它下面是
<mapdata>
<positionID>1c</positionID>
<longitude>1c</longitude>
<latitude>1c</latitude>
</mapdata>
大体结构就是这样的。InputGui.java是demo的界面类,并自带主函数,主要显示了输入的区域标识,经度,纬度,在输入区域标识值触发信息查找事件,如果存在匹配值则在经度纬度输入框内即可显示相关信息,添加/修改按钮也会变为修改,删除按钮可用,已完成对信息的修改,如果没有匹配内容,则按钮不可编辑,直到用户输入完整的新的id,经纬度等信息后,按钮会变为添加,其余自验吧,嘿嘿
3,直接贴代码了.....
//InputGui.java
package mapData;
import static gui.SwingConsole.run;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.ParsingException;
import nu.xom.ValidityException;
public class InputGui extends JFrame {
private JButton
b1 = new JButton("修改/添加"),
b2 = new JButton("删除");
private JTextField
t1 = new JTextField(20),
t2 = new JTextField(20),
t3 = new JTextField(20);
private JLabel
label1 = new JLabel("ID"),
label2 = new JLabel("经度"),
label3 = new JLabel("纬度");
private String s = "";
private UpperCaseDocument ucd1 = new UpperCaseDocument();
private UpperCaseDocument ucd2 = new UpperCaseDocument();
private UpperCaseDocument ucd3 = new UpperCaseDocument();
public InputGui() {
t1.setDocument(ucd1);
ucd1.addDocumentListener(new T1());
t2.setDocument(ucd2);
ucd2.addDocumentListener(new T2());
t3.setDocument(ucd3);
ucd3.addDocumentListener(new T2());
b1.addActionListener(new B1());
b2.addActionListener(new B2());
/*t1.addActionListener(new T1A());*/
setLayout(new GridLayout(4,2));
add(label1);
add(t1);
add(label2);
add(t2);
add(label3);
add(t3);
add(b1);
add(b2);
b1.setEnabled(false);
b2.setEnabled(false);
}
class T1 implements DocumentListener {
public void changedUpdate(DocumentEvent e) {
}
public void insertUpdate(DocumentEvent e) {
//t2.setText(t1.getText());
//t3.setText("Text: " + t1.getText());
//b1.setEnabled(false);
try {
MapBean mapMessage = (new CreateMapXml()).searchElement(t1.getText());
if((mapMessage.getLatitude()!=null)
&&(mapMessage.getLongitude()!=null)
&&(!mapMessage.getLatitude().equals(""))
&&(!mapMessage.getLongitude().equals(""))){
t2.setText(mapMessage.getLongitude());
t3.setText(mapMessage.getLatitude());
b1.setText("修改");
b1.setEnabled(false);
b2.setEnabled(true);
}else{
b1.setText("添加");
t2.setText("");
t3.setText("");
b1.setEnabled(false);
b2.setEnabled(false);
}
} catch (ValidityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParsingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public void removeUpdate(DocumentEvent e) {
try {
MapBean mapMessage = (new CreateMapXml()).searchElement(t1.getText());
if((mapMessage.getLatitude()!=null)
&&(mapMessage.getLongitude()!=null)
&&(!mapMessage.getLatitude().equals(""))
&&(!mapMessage.getLongitude().equals(""))){
t2.setText(mapMessage.getLongitude());
t3.setText(mapMessage.getLatitude());
b1.setText("修改");
b1.setEnabled(false);
b2.setEnabled(true);
}else{
b1.setText("添加");
t2.setText("");
t3.setText("");
b1.setEnabled(false);
b2.setEnabled(false);
}
} catch (ValidityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParsingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
class T2 implements DocumentListener {
public void changedUpdate(DocumentEvent e) {}
public void insertUpdate(DocumentEvent e) {
if((t1.getText()!=null)
&&(t2.getText()!=null)
&&(t3.getText()!=null)
&&(!t1.getText().equals(""))
&&(!t2.getText().equals(""))
&&(!t3.getText().equals(""))){
b1.setEnabled(true);
}
}
public void removeUpdate(DocumentEvent e) {
if((t1.getText()!=null)
&&(t2.getText()!=null)
&&(t3.getText()!=null)
&&(!t1.getText().equals(""))
&&(!t2.getText().equals(""))
&&(!t3.getText().equals(""))){
b1.setEnabled(true);
}
}
}
class B1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String id = t1.getText();
String longitude = t2.getText();
String latitude = t3.getText();
if (b1.getText().equals("添加")){
try {
(new CreateMapXml()).doInsertElement(id, longitude, latitude);
b1.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(b1.getText().equals("修改")){
try {
(new CreateMapXml()).changeElement(id, longitude, latitude);
b1.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
class B2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String id = t1.getText();
try {
(new CreateMapXml()).deleteElement(id);
b2.setEnabled(false);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
t1.setText("");
t2.setText("");
t3.setText("");
}
}
public static void main(String[] args) {
run(new InputGui(), 375, 200);
}
}
class UpperCaseDocument extends PlainDocument {
private boolean upperCase = true;
public void setUpperCase(boolean flag) {
upperCase = flag;
}
public void insertString(int offset, String str, AttributeSet attSet)
throws BadLocationException {
if (upperCase)
//str = str.toUpperCase();
super.insertString(offset, str, attSet);
}
} // /:~
//CreateMapXml.java
package mapData;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Elements;
import nu.xom.ParsingException;
import nu.xom.Serializer;
import nu.xom.ValidityException;
public class CreateMapXml {
private MapBean mapMessage = new MapBean();
private static String xmlRoot = "map"; //xml文件的root节点
private String xmlMapData="mapdata"; //对应mapdata标签
static Element root = new Element(xmlRoot);
public CreateMapXml(){}
public CreateMapXml(MapBean mapMessage){
//含有MapBean的构造函数
this.mapMessage = mapMessage;
}
public void addToRoot(Element e){
//将子标签添加到root标签下
root.appendChild(e);
}
public static void format(OutputStream os, Document doc) throws Exception {
//格式化xml文件书写格式,如缩进等
Serializer serializer = new Serializer(os, "UTF-8");
serializer.setIndent(4);
//设置不同级别标签间的缩进长度
serializer.setMaxLength(100);
//设置每行默认最大长度
serializer.write(doc);
//将文档写入输出流
serializer.flush();
}
public Element insertElement(MapBean mapMessage){
//向骨架中插入positionID,longitude,latitude标签及元素
Element mapdata = new Element(xmlMapData);
//声明三个标签的父标签
Element positionIDEle = new Element(MapBean.POSITIONID);
positionIDEle.appendChild(mapMessage.getPositionID());
//声明positionID标签并添加内容
Element longitudeEle = new Element(MapBean.LONGITUDE);
longitudeEle.appendChild(mapMessage.getLongitude());
//声明longitude标签并添加内容
Element latitudeEle = new Element(MapBean.LATITUDE);
latitudeEle.appendChild(mapMessage.getLatitude());
//声明latitude标签并添加内容
mapdata.appendChild(positionIDEle);
mapdata.appendChild(longitudeEle);
mapdata.appendChild(latitudeEle);
//将三个标签与其父标签关联
return mapdata;
}
public Element insertElement(String positionID, String longitude, String latitude){
MapBean mapMessage = new MapBean( positionID, longitude, latitude);
//调用insertElement(MapBean)
Element mapdata = insertElement(mapMessage);
return mapdata;
}
public void doInsertElement(String positionID, String longitude, String latitude) throws Exception{
//封装insertElement(),提高内聚性
Element e = this.insertElement(positionID, longitude, latitude);
//将xml结构的MapBean实例写入Element,形成一个元素树块,相当于一个子块
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
root.insertChild(e, 1);
//在根节点处插入Element实例
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里写入文件
}
public void doInsertElement(MapBean mapMessage) throws Exception{
//封装insertElement(),提高内聚性
this.doInsertElement(mapMessage.getPositionID(), mapMessage.getLongitude(), mapMessage.getLatitude());
}
public void changeElement(String positionID, String longitude, String latitude) throws Exception{
//将符合positionID的相关信息更改longitude和latitude
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
//这个方法太笨了,有待改进...
eleTemp = e.getFirstChildElement("longitude");
eleTemp.removeChild(0);
eleTemp.appendChild(longitude);
//将原有经度数据去除并添加新数据
eleTemp = e.getFirstChildElement("latitude");
eleTemp.removeChild(0);
eleTemp.appendChild(latitude);
//将原有纬度数据去除并添加新数据
}
//System.out.println(ele.getValue());
}
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里并写入文件
}
public void deleteElement(String positionID) throws Exception{
//将符合positionID的相关信息删除信息
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
e.removeChildren();
root.removeChild(e);
break;
}
}
CreateMapXml.format(System.out, doc);
//格式化并在控制台输出
CreateMapXml.format(new BufferedOutputStream(new FileOutputStream("mapdata.xml")), doc);
//格式化到输出流里并写入文件
}
public MapBean searchElement(String positionID) throws ValidityException, ParsingException, IOException{
//查询符合positionID的相关信息
MapBean mapMessage = new MapBean();
Builder builder = new Builder();
Document doc = builder.build("mapdata.xml");
//通过Builder从文件中获取xml文件的Document实例
Element root = doc.getRootElement();
//获得该xml文件的根节点
Elements mapdatas = root.getChildElements();
//获取子节点集
for(int i=0; i<mapdatas.size(); i++){
Element e = mapdatas.get(i);
//获取子节点集对应序列的节点对象
Element eleTemp = e.getFirstChildElement("positionID");
//System.out.println(e.getLocalName());
//System.out.println(ele.getValue());
if(eleTemp.getValue().equals(positionID)){
mapMessage.setPositionID(eleTemp.getValue());
eleTemp = e.getFirstChildElement("longitude");
mapMessage.setLongitude(eleTemp.getValue());
eleTemp = e.getFirstChildElement("latitude");
mapMessage.setLatitude(eleTemp.getValue());
break;
}
}
//将返回结果存入MapBean对象内
return mapMessage;
}
}
//: net/mindview/util/SwingConsole.java
// Tool for running Swing demos from the
// console, both applets and JFrames.
package gui;
import javax.swing.*;
public class SwingConsole {
public static void
run(final JFrame f, final int width, final int height) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
f.setTitle(f.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(width, height);
f.setVisible(true);
}
});
}
} ///:~
o了,刚开始写技术性文章,有些乱,见谅... <!--v:3.2-->
发表评论
-
JSON-lib框架,转换JSON、XML
2011-10-12 19:43 1048Json-lib可以将Java对象转成json格式的字符串 ... -
XML/map相互转换
2011-08-12 18:22 3170import java.io.IOException;impo ... -
将json串 转换成List<map>格式
2011-04-22 15:20 4965/** * 将json字符串转换成List<M ... -
AJAX向Response留中输出Xml的办法
2011-02-11 09:28 1451Java类中: public static void out ... -
用XPath 表达式从 XML 文档中提取信息
2011-02-10 14:52 1424package test; import java.io ... -
IMPORTANT: Remove this line from json2.js before deployment.问题的解决
2010-06-01 16:03 1414在网页中加载使用了json2.js,每次打开页面,都弹出一 ... -
JSON例子
2010-06-01 13:59 12731.一个简单的列子需求分析:在一个页面中,有个公司的 ... -
Json的数据格式
2010-06-01 13:57 1172-以下内容来自互联网 1 ... -
JSON教程入门
2010-06-01 13:56 51111.)JSON定义: JSON(JavaScrip ... -
json2.js的初步学习与了解
2010-06-01 13:55 16371.)该js的下载地址 ... -
基于json-lib.jar包Json程序,本篇主要介绍一个简单的实例!
2010-06-01 13:53 16821.首先Json-lib 需要至少 ... -
JSON参考网站
2010-06-01 13:48 1022JSON:http://www.json.org json中 ... -
基于json-lib.jar包 JSONObject-Java常用的四种用法
2010-06-01 13:48 9287基于json-lib.jar包Json实例程序1.JSONOb ... -
基于json-lib.jar包 常用的三种扩展功能
2010-06-01 13:45 19671.使用一个JSON格式化字符串来创建一个JSONFun ... -
基于json-lib.jar包 创建JSONObject的四个常用方法
2010-06-01 13:41 2198基于json-lib.jar包Json实例程序1.从头或者 ... -
使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
2010-06-01 11:47 2446当前台以JSON格式向后台传递数据的时候,对于数据中的日期属性 ... -
使用JavaScript将字符串数据转换为XML
2010-02-02 18:06 1509使用JavaScript将字符串数据转换为XML 在j ... -
生成xml字符串或xml文件
2010-02-02 18:02 2395import java.io.FileWriter;im ... -
使用JavaScript解析xml文件或xml格式字符串
2009-08-27 10:59 4779javascript中,不论是解析xml文件,还是xml格 ... -
javascript解析xml文件。兼容IE、firefox、Chrome
2009-08-26 17:23 4286.html<div id="bookList& ...
相关推荐
本教程通过一个简单的“使用XOM处理XML文档的demo源码”实例,旨在帮助开发者了解如何利用XOM库进行XML文档的操作,如查找、插入、删除和修改。 首先,让我们详细了解XOM库的特点。XOM库设计的核心理念是消除DOM...
- **配置文件**:许多软件使用XML格式的配置文件,XOM可用于读取和修改这些文件。 - **数据交换**:在不同系统间,XML作为标准的数据交换格式,XOM提供了处理这种数据的工具。 通过学习和使用XOM,开发者可以更...
在《Java编程思想》这本书中,作者Bruce Eckel深入探讨了如何使用XOM来有效地处理XML数据,强调了其在XML解析中的优势和特点。XOM作为一个高质量的XML API,旨在提供一种简单、类型安全且易于使用的接口,以便开发...
XOM(eXtremely Object-Oriented XML Library)是一个用于Java的XML解析库,它的设计目标是提供一种高效、易于使用且类型安全的方式来处理XML文档。XOM提供了一种树型结构来表示XML文档,使得开发者能够通过对象方法...
通过使用XOM,开发者可以创建、修改和查询XML文档,而无需担心内存消耗和性能瓶颈。 在“nu.xom xom xom.jar -1.2.3”这个压缩包中,包含了XOM库的源代码和编译后的JAR文件。`xom.jar`是XOM库的可执行版本,可以...
- **修改XML**:通过修改树状结构中的元素、属性和文本,可以实现XML的修改。 - **序列化XML**:使用`XMLWriter`类,可以将XML树写入输出流或字符串,生成XML格式的数据。 **总结** XOM 1.2作为一个强大的XML处理...
通过这个对象树,开发者可以直接访问和修改XML结构,如获取元素、属性值,或者添加、删除节点,从而实现对XML文档的精细操作。XOM库还支持XPath查询,允许开发者通过表达式快速定位到XML文档的特定部分。 然而,...
XML使用自定义的标签来定义数据结构,允许用户创建自己的元素和属性,具有良好的可扩展性和灵活性。 XOM库则是Java中一个高质量的XML API,它提供了一种简单、类型安全且无XML解析器API暴露的编程模型。XOM库的设计...
xom jar包 xml用的,自己用的,thank csdn!
本项目案例“java对xml操作的项目案例”深入探讨了如何使用Java来读取、修改和写入XML文件。下面将详细阐述相关知识点。 一、Java与XML的交互 1. DOM解析器:Document Object Model (DOM) 是一种将整个XML文档加载...
Java中的XML解析是处理XML数据的关键技术,JDom是一个高效的、纯Java的XML处理库,它为Java开发者提供了便捷的方式来创建、修改和读取XML文档。在这个资源中,我们将探讨如何利用JDom来解析XML文件,并从MySQL数据库...
在描述中提到的错误“找不到nu.xom.Serializer这个类”,这表明在尝试使用XOM库进行XML序列化时,系统的类路径中没有包含XOM库,具体来说就是缺少了"xom-1.1.jar"这个依赖。 "nu.xom.Serializer"是XOM库中的一个...
- 写入XML文件:使用XOM或其他XML库,将创建的XML结构写入文件。 6. **注意事项**: - 数据类型转换:Excel可能包含数字、日期、字符串等不同类型的单元格,转换时需考虑这些类型在XML中的表示。 - 处理样式和...
XOM(XML Object Model)是Java中用于处理XML文档的一个库,由James Clark开发,它提供了一种高效、类型安全且易于使用的API来操作XML。XOM的主要目标是解决DOM(Document Object Model)的一些常见问题,如性能和...
xom 是一款XML解析器,它提供了一套非常省力的API,对Xml进行解析和操作。 导入Eclipse方法: 1.右键Eclipse中的工程,选择Build Path->Configure Build Path 2.选择Add External Jar,选择xom-1.2.9.jar即可
2. **解析XML**:`XmlBeanDefinitionReader`使用DOM解析器(如XOM、JDOM或DOM4J)解析XML文件,生成DOM树。然后,它遍历DOM树,对每个元素生成一个`BeanDefinition`对象。 3. **注册BeanDefinition**:解析后的Bean...
Jaxen是一个独立于XML解析器的XPath实现,它允许你在各种不同的XML API(如DOM、DOM4J、JDOM、XOM等)之间使用相同的XPath表达式。Jaxen的主要作用在于提供一个统一的接口,使得开发者不必关心底层的XML解析器,只需...
这个jar是有关xml解析用的 其中主要是使用Json-lib转换数据格式时候的依赖包 网上要求是nu.xom包就在这个jar文件中 可以实现java各种集合数据和json数据的格式转换以及xml格式数据和json数据的格式互换
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及Web服务等场景。在Java程序开发中,处理XML文档时,我们常常会用到一些库来帮助解析和操作XML。本话题将详细介绍两个...
xml转json时的依赖包, Size: 421.45 KB Detail: META-INF/ META-INF/MANIFEST.MF 1.15 KB nu/ nu/xom/ nu/xom/ASCIIWriter.class 499.0 bytes nu/xom/Attribute$Type.class 2.04 KB nu/xom/...