XMLBecause of its good structure, it is widely used in the definition of document formats. We know that application software generally needs to use configuration file to determine some parameters during runtime. The configuration file of previous applications was generally an .ini file. Although ini files are still in use today, due to the emergence of XML, more and more commercial software is using XML as the configuration file format, such as BEA's Weblogic and IBM's Websphere. Therefore, when we design a software configuration file, we will increasingly consider using XML as the format of the configuration file.
Because configuration files sometimes must be modified by users, providing a visual format for editing configuration files is a reflection of the software's good user interactivity. We must find a visual method for XML documents. The JTree in the Swing component in the Java language is very suitable for the visualization of XML documents. There is a very convenient conversion method between the two. This means that we can easily display the user's operations on the JTree as modifications in the XML file after saving, and we can also conveniently display the XML file as a JTree to the user.
Visualization of XML documents
An XML document is actually a tree structure. For example, the following XML document:
<?xml version=“1.0”encoding=“GB2312”?> <skin> <skin1> <name>古典</name> <dir>d:\software\App\skin</dir> <head>head1.bmp</head> <center>center1.bmp</center> <foot>foot1.bmp</foot> </skin1> <skin2> <name>现代</name> <dir>d:\software\App\skin</dir> <head>head2.bmp</head> <center>center2.bmp</center> <foot>foot2.bmp</foot> </skin2> </skin>
It can be seen that the XML document is the interface of a multi-interface program PictureConfiguration program. If the XML document is visualized, then JTree should be used What is obtained is the result shown in the figure below.
Figure Visualization results
All XML documents can generate such a Jtree. Using XML's Parser and the JTree class in Java, a general visual XML document can be constructed to form a JTree. The result of the XML document parsing by XML Parser is to generate a DOM (Document Object Model) tree. The structure of the DOM tree is actually the same as the structure of the JTree. , which makes the cooperation between JTree and XML Parser very natural. Here’s how to do it.
A class that reads and writes XML files
First you must obtain the XML Parser package, which can be obtained from the following address: http://xml.apache.org/xerces2-j/index. html.
Then design an XMLTree class, inherit from the definition and members of the JTree class variables , functions are defined as follows:
public class XMLTree extends JTree{ private DefaultMutableTreeNode treeNode; //JTree的根节点 private DocumentBuilderFactory dbf; // 这三个成员变量是xml parser需要的 private DocumentBuilder db; private Document doc; XMLTree(String fileName); //构造函数,做初始化工作 public DefaultMutableTreeNode LoadFile(Node root); //从某个XML文件生成该树 public void SaveToFile(DefaultMutableTreeNode root,FileWriter fw); //将该树存盘成XML文件 private Node parseXml( String text ) }
where The initialization work done by the constructor is as follows:
XMLTree(String fileName){ dbf = DocumentBuilderFactory.newInstance(); //生成dbf的实例 db = dbf.newDocumentBuilder(); //生成db的实例 treeNode = LoadFile( getXMLRoot( text ) ); //解析该xml文件,返回JTree的根节点 setModel( new DefaultTreeModel( treeNode ) ); //根据该根节点生成JTree }
Among them, parseXml is a program that returns the root element of the XML file, as follows:
private Node getXMLRoot( String text ){ ByteArrayInputStream byteStream; byteStream = new ByteArrayInputStream( text.getBytes() ); //将XML文件读到Stream里去 try{ doc = db.parse( byteStream ); //解析该xml文件。 } catch ( Exception e ) { e.printStackTrace();} return ( Node )doc.getDocumentElement(); //返回该XML文件的DOM树的根元素 }
The core part of LoadFile is a recursionThe process is as follows:
private DefaultMutableTreeNode createTreeNode( Node root ){ DefaultMutableTreeNode treeNode = null; //定义要返回的根节点 String name = root.getNodeName(); //获得该节点的NodeName String value = root.getNodeValue(); //获得该节点的NodeValue treeNode = new DefaultMutableTreeNode( root. getNodeType() == Node.TEXT_NODE ? value : name ); //如果为值节点,那么取得该节点的值,否则取得该节点的Tag的名字 if ( root.hasChildNodes() ) //如果该节点有孩子节点,那么递归处理该节点的孩子节点 { NodeList children = root.getChildNodes(); //取得该节点的子节点列表 if( children != null ){ //判断子节点是否为空 int numChildren = children.getLength(); //取得字节数目 for (int i=0; i < numChildren; i++){ Node node = children.item(i); //循环处理每个子节点 if( node != null ) { if( node.getNodeType() == Node.ELEMENT_NODE ) { treeNode.add( createTreeNode(node) ); //如果该子节点还有孩子节点使用递归的方法处理该子节点 } else { String data = node.getNodeValue(); if( data != null ) { data = data.trim(); if ( !data.equals(“\n”) && !data.equals(“\r\n”) && data.length() > 0 ) { treeNode.add(new DefaultMutableTreeNode(node.getNodeValue())); //如果该节点没有孩子节点,那么直接加到节点下 } } } } } } } return treeNode; //返回节点 }
You can easily make changes on the JTree using the methods in Java's Swing package. You can use the pop-up dialog box method, or you can make changes directly on the JTree. In short, after the JTree is changed, it needs to be written back to the file. Writing a JTree into an XML file is a recursive process. The method is as follows:
public void SaveToFile(DefaultMutableTreeNode, FileWriter fw) {try { if (root.isLeaf()) fw.write(root.toString()+“\r\n”); //如果是叶子节点则直接将该节点输出到文件中 else { //不是叶子节点的话递归输出该节点 fw.write(“<”+root.toString()+“>\r\n”); for (int i=0; i < root.getChildCount(); i++) { DefaultMutableTreeNode childNode =(DefaultMutableTreeNode) root.getChildAt(i); saveFile(childNode, fw); //递归输出该节点的所有子节点 } fw.write(“</”+root.toString()+“>\r\n”); } } catch (Exception e) { e.printStackTrace(); } }
It must be noted that if the XML file contains Chinese, then it needs to Before calling the above function, enter the encoding method of the XML file in the file as follows:
fw.write(“<?xml version=“1.0” encoding=“GB2312”?>\r\n”);
After calling the function, you should also close the file as follows:
fw.close()
Conclusion
XML files are widely used in configuration files and information transmission. There are many visualization methods. This article introduces one of the implementation methods by combining Java's JTree class. The good combination of Java language and XML makes it flexible and convenient to use Java to compile XML programs.
The above is the detailed content of How to convert between XML documents and JTree. For more information, please follow other related articles on the PHP Chinese website!

RSS and XML are tools for web content management. RSS is used to publish and subscribe to content, and XML is used to store and transfer data. They work with content publishing, subscriptions, and update push. Examples of usage include RSS publishing blog posts and XML storing book information.

RSS documents are XML-based structured files used to publish and subscribe to frequently updated content. Its main functions include: 1) automated content updates, 2) content aggregation, and 3) improving browsing efficiency. Through RSSfeed, users can subscribe and get the latest information from different sources in a timely manner.

The XML structure of RSS includes: 1. XML declaration and RSS version, 2. Channel (Channel), 3. Item. These parts form the basis of RSS files, allowing users to obtain and process content information by parsing XML data.

RSSfeedsuseXMLtosyndicatecontent;parsingtheminvolvesloadingXML,navigatingitsstructure,andextractingdata.Applicationsincludebuildingnewsaggregatorsandtrackingpodcastepisodes.

RSS documents work by publishing content updates through XML files, and users subscribe and receive notifications through RSS readers. 1. Content publisher creates and updates RSS documents. 2. The RSS reader regularly accesses and parses XML files. 3. Users browse and read updated content. Example of usage: Subscribe to TechCrunch's RSS feed, just copy the link to the RSS reader.

The steps to build an RSSfeed using XML are as follows: 1. Create the root element and set the version; 2. Add the channel element and its basic information; 3. Add the entry element, including the title, link and description; 4. Convert the XML structure to a string and output it. With these steps, you can create a valid RSSfeed from scratch and enhance its functionality by adding additional elements such as release date and author information.

The steps to create an RSS document are as follows: 1. Write in XML format, with the root element, including the elements. 2. Add, etc. elements to describe channel information. 3. Add elements, each representing a content entry, including,,,,,,,,,,,. 4. Optionally add and elements to enrich the content. 5. Ensure the XML format is correct, use online tools to verify, optimize performance and keep content updated.

The core role of XML in RSS is to provide a standardized and flexible data format. 1. The structure and markup language characteristics of XML make it suitable for data exchange and storage. 2. RSS uses XML to create a standardized format to facilitate content sharing. 3. The application of XML in RSS includes elements that define feed content, such as title and release date. 4. Advantages include standardization and scalability, and challenges include document verbose and strict syntax requirements. 5. Best practices include validating XML validity, keeping it simple, using CDATA, and regularly updating.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Mac version
God-level code editing software (SublimeText3)