📄 groupdomparser.java
字号:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.w3c.dom.Attr;
import org.w3c.dom.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.io.*;
public class GroupDOMParser
{
Document document;
String eName;
int num=0;
DefaultMutableTreeNode rootNode=new DefaultMutableTreeNode("");
DefaultMutableTreeNode docNode,eleNode,textNode,attrNode;
DefaultMutableTreeNode insNode=new DefaultMutableTreeNode("");
public GroupDOMParser(String s)
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(s);
}
catch(Exception e)
{
}
}
public void traverse(Node aNode)
{
try{
switch(aNode.getNodeType())
{
case Node.DOCUMENT_NODE:
docNode = new DefaultMutableTreeNode(aNode.getNodeName());
rootNode=docNode;
processChildren(aNode.getChildNodes());
break;
case Node.ELEMENT_NODE:
NamedNodeMap attrList = aNode.getAttributes();
if(attrList.getLength()>0)
{
if(num==0)
{
eleNode = new DefaultMutableTreeNode(aNode.getNodeName());
rootNode.add(eleNode);
insNode=eleNode;
num++;
}
else
{
eleNode = new DefaultMutableTreeNode(aNode.getNodeName());
insNode.add(eleNode);
}
for(int i=0; i<attrList.getLength(); i++)
{
Attr attr = (Attr)attrList.item(i);
attrNode = new DefaultMutableTreeNode(attr.getNodeValue());
eleNode.add(attrNode);
}
}
else {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(aNode.getNodeName());
eleNode.add(node);
docNode=node;
}
processChildren(aNode.getChildNodes());
break;
case Node.CDATA_SECTION_NODE:
case Node.TEXT_NODE:
if(!aNode.getNodeValue().trim().equals(""))
{
DefaultMutableTreeNode textNode = new DefaultMutableTreeNode(aNode.getNodeValue());
docNode.add(textNode);
}
break;
}
}catch(NullPointerException e){}
}
private void processChildren(NodeList nList)
{
if(nList.getLength() != 0)
{
for(int i=0; i<nList.getLength(); i++)
traverse(nList.item(i));
}
}
public void addmember(Document document1,String a,String b,String c,String d)
{
document=document1;
Element member=document.createElement(a);
member.setAttribute("id",b);
Element name=(Element)document.createElement("name");
Element sex=(Element)document.createElement("sex");
name.appendChild(document.createTextNode(c));
sex.appendChild(document.createTextNode(d));
member.appendChild(name);
member.appendChild(sex);
document.getDocumentElement().appendChild(member);
}
public void WriteToXml(Document document1,String filename)
{
try
{
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
DOMSource source=new DOMSource(document1);
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
PrintWriter pw=new PrintWriter(new FileOutputStream(filename));
StreamResult result=new StreamResult(pw);
transformer.transform(source,result);
}
catch(TransformerException te)
{
te.printStackTrace();
}
catch(IOException exp)
{
exp.printStackTrace();
}
}
public void delmember(Document document1,String s)
{
int i;
document=document1;
for(i=0;i<document.getChildNodes().item(2).getChildNodes().getLength();i++)
{
if(s.equals(document.getChildNodes().item(2).getChildNodes().item(i).getNodeName()))
{
Node del=document.getChildNodes().item(2).getChildNodes().item(i);
document.getChildNodes().item(2).removeChild(del);
}
}
}
public void modifymember(Document document1,String a,String b,String c,String d)
{
int i;
document=document1;
for(i=0;i<document.getChildNodes().item(2).getChildNodes().getLength();i++)
{
String mem= document.getChildNodes().item(2).getChildNodes().item(i).getNodeName();
if(a.equals(mem))
{
Node modify=document.getChildNodes().item(2).getChildNodes().item(i);
Element member=document.createElement(mem);
member.setAttribute("id",b);
Element name=(Element)document.createElement("name");
Element sex=(Element)document.createElement("sex");
name.appendChild(document.createTextNode(c));
sex.appendChild(document.createTextNode(d));
member.appendChild(name);
member.appendChild(sex);
document.getChildNodes().item(2).replaceChild(member,modify);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -