Create xml tree
Hi, I am trying do small application for showing tree structure of XML documents.
And how can I create tree of xml document with bad structure?
I can do it, when the xml file is correct. But I cannot make xml tree when the document has wrong tags:
<rt>
<aaa>
text
<bbb>
<ccc />
<ddd>text</aaa></ddd>
</rt>I know, it is bad xml document, but is there any way how to create tree? Samething like this:
rt
+aaa : ERROR
-bbb : ERROR
-ccc
+ddd
-aaa : ERRORI use these metods and at first build xml:
public void buildXML(String fileName) {
try {
SAXBuilder builder = new SAXBuilder();
builder.setValidation(false);
doc = builder.build(fileName);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
root = doc.getRootElement();
}then I get xml tree:
private DefaultMutableTreeNode tNode = new DefaultMutableTreeNode();
public DefaultMutableTreeNode getTreeNode() {
tNode.removeAllChildren();
makeTree(root, tNode);
return tNode;
private void makeTree(Element el, DefaultMutableTreeNode tn) {
DefaultMutableTreeNode tn_2 = new DefaultMutableTreeNode(el.getName());
tn.add(tn_2);
Attribute attr;
for (int i = 0; i < el.getChildren().size(); i++) {
Element el2 = (Element)el.getChildren().get(i);
if (el2 instanceof Element) {
makeTree((Element)el2, tn_2);
}can anybody help me, please?
The question makes no sense. You display something that isn't tree-structured data and ask if there is any way to display it in a tree structure. Well, no, there isn't.
And also, no XML parser will complete parsing of a malformed XML document. It's against the rules.
Similar Messages
-
Best way to create XML tree --- Swing??
My program reads form an XML file upon launching to get all the ground data and the file structure and all that good stuff so it can simulate what it simulates (doesn't matter and I can say anyway).
It's getting to be a PITA to maintain and add stuff to my XML config file. So, what's the bast way to build XML files through a GUI like swing. Hmmmmmmm.
Sorry for the vague question.
I was thinking building something like elplorer with pop up windows and buttons to add elemts into the XML, but so the elements would always be added into the correct position.Hi,
use javax.swing.JTree
http://galileo.spaceports.com/~ibidris/ -
How to create subtrees from a large xml tree
Hi All,
I am parsing an XML which creates a tree. I want to create small subtrees from it, so that I can associaate XPATH for these small subtrees.
If anyone knows kindly help me.
Thanks & Regards,
sneha...VL01 is the transaction for the creation of Delivery
VL01 SAPMV50A Create Delivery
VL01N SAPMV50A Create Outbound Dlv. with Order Ref
VL01NO SAPMV50A Create Outbound Dlv. w/o Order Ref.
Message was edited by: Gopi Narendra -
Create a Tree Node Structure from XML
Hi
We have a requirement where we have an XML file we want to create the Tree Node structure from the XML can anyone help out on this
We are referring to the following blog but in that it is coming from KM content and we require the tree structure to form from a XML file
http://wiki.sdn.sap.com/wiki/display/Snippets/SmartNavigationTreeforKM+Folders
Can anyone help me
Regards
JMHi,
Could you elaborate a litle more exacly what you need to do?
I found the link http://help.sap.com/saphelp_470/helpdata/en/86/8280db12d511d5991b00508b6b8b11/content.htm that maybe assist you.
Please remember to evaluate the replays, this incentive the SDN to keep growing,
regards,
Fabio -
How to Create XML Schema From JTree ?
Please help me... Thank you.
This is Code
Tree.java ----- Run This File
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.tree.DefaultMutableTreeNode;
public class Tree extends JPanel implements ActionListener {
private int newNodeSuffix = 1;
private static String ADD_COMMAND = "add";
private static String REMOVE_COMMAND = "remove";
private static String CLEAR_COMMAND = "clear";
private static String OK_COMMAND = "ok";
private DynamicTree treePanel;
public Tree() {
super(new BorderLayout());
//Create the components.
treePanel = new DynamicTree();
//populateTree(treePanel);
JButton addButton = new JButton("Add");
addButton.setActionCommand(ADD_COMMAND);
addButton.addActionListener(this);
JButton removeButton = new JButton("Remove");
removeButton.setActionCommand(REMOVE_COMMAND);
removeButton.addActionListener(this);
JButton clearButton = new JButton("Clear");
clearButton.setActionCommand(CLEAR_COMMAND);
clearButton.addActionListener(this);
JButton okButton = new JButton("OK");
okButton.setActionCommand(OK_COMMAND);
okButton.addActionListener(this);
//Lay everything out.
treePanel.setPreferredSize(new Dimension(300, 150));
add(treePanel, BorderLayout.CENTER);
JPanel panel = new JPanel(new GridLayout(0,1));
panel.add(addButton);
panel.add(removeButton);
panel.add(clearButton);
panel.add(okButton);
add(panel, BorderLayout.LINE_END);
/*public void populateTree(DynamicTree treePanel) {
String p1Name = new String("Parent 1");
//String p2Name = new String("Parent 2");
String c1Name = new String("Child 1");
//String c2Name = new String("Child 2");
DefaultMutableTreeNode p1;
p1 = treePanel.addObject(null, p1Name);
//p2 = treePanel.addObject(null, p2Name);
treePanel.addObject(p1, c1Name);
//treePanel.addObject(p1, c2Name);
//treePanel.addObject(p2, c1Name);
//treePanel.addObject(p2, c2Name);
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (ADD_COMMAND.equals(command)) {
//Add button clicked.
treePanel.addObject("New Node " + newNodeSuffix++);
} else if (REMOVE_COMMAND.equals(command)) {
//Remove button clicked.
treePanel.removeCurrentNode();
} else if (CLEAR_COMMAND.equals(command)) {
//Clear button clicked.
treePanel.clear();
} else if (OK_COMMAND.equals(command)) {
//Ok button clicked.
treePanel.ok();
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("Craete XML Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
Tree newContentPane = new Tree();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}DynamicTree.java
import javax.swing.JOptionPane;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
public class DynamicTree extends JPanel {
protected DefaultMutableTreeNode rootNode;
protected DefaultTreeModel treeModel;
protected JTree tree;
private Toolkit toolkit = Toolkit.getDefaultToolkit();
public DynamicTree() {
super(new GridLayout(1,0));
rootNode = new DefaultMutableTreeNode("Root Node");
treeModel = new DefaultTreeModel(rootNode);
treeModel.addTreeModelListener(new MyTreeModelListener());
tree = new JTree(treeModel);
tree.setEditable(true);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setShowsRootHandles(true);
JScrollPane scrollPane = new JScrollPane(tree);
add(scrollPane);
/** Remove all nodes except the root node. */
public void clear() {
rootNode.removeAllChildren();
treeModel.reload();
public void ok() {
int n = JOptionPane.showConfirmDialog(null, "Do you want to create XML Schema?", "", JOptionPane.YES_NO_OPTION);
/** Remove the currently selected node. */
public void removeCurrentNode() {
TreePath currentSelection = tree.getSelectionPath();
if (currentSelection != null) {
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)
(currentSelection.getLastPathComponent());
MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());
if (parent != null) {
treeModel.removeNodeFromParent(currentNode);
return;
// Either there was no selection, or the root was selected.
toolkit.beep();
/** Add child to the currently selected node. */
public DefaultMutableTreeNode addObject(Object child) {
DefaultMutableTreeNode parentNode = null;
TreePath parentPath = tree.getSelectionPath();
if (parentPath == null) {
parentNode = rootNode;
} else {
parentNode = (DefaultMutableTreeNode)
(parentPath.getLastPathComponent());
return addObject(parentNode, child, true);
public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
Object child) {
return addObject(parent, child, false);
public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
Object child,
boolean shouldBeVisible) {
DefaultMutableTreeNode childNode =
new DefaultMutableTreeNode(child);
if (parent == null) {
parent = rootNode;
treeModel.insertNodeInto(childNode, parent,
parent.getChildCount());
//Make sure the user can see the lovely new node.
if (shouldBeVisible) {
tree.scrollPathToVisible(new TreePath(childNode.getPath()));
return childNode;
class MyTreeModelListener implements TreeModelListener {
public void treeNodesChanged(TreeModelEvent e) {
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)
(e.getTreePath().getLastPathComponent());
* If the event lists children, then the changed
* node is the child of the node we've already
* gotten. Otherwise, the changed node and the
* specified node are the same.
try {
int index = e.getChildIndices()[0];
node = (DefaultMutableTreeNode)
(node.getChildAt(index));
} catch (NullPointerException exc) {}
System.out.println("The user has finished editing the node.");
System.out.println("New value: " + node.getUserObject());
public void treeNodesInserted(TreeModelEvent e) {
public void treeNodesRemoved(TreeModelEvent e) {
public void treeStructureChanged(TreeModelEvent e) {
}XML shema is basically an XML file. So u need to know how to create an XML,
provided u know how the shema file should be.
Creating an XML :
http://forum.java.sun.com/thread.jspa?threadID=5181031&messageID=9705786#9705786 -
How to create xml entity in java?????
public Document createXml(String Error,String src,String trg)
DocumentBuilderFactory docBuilderFactory = null;
DocumentBuilder docBuilder = null;
// src= src.replaceAll("&","I want this ");
// trg= trg.replaceAll("&","Yse !!!;");
try {
docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilder = docBuilderFactory.newDocumentBuilder();
xmlDoc = docBuilder.newDocument();
//create the root element
Element errorLog = xmlDoc.createElement("errorLog");
//all it to the xml tree
xmlDoc.appendChild(errorLog);
Entity e1=(Entity) xmlDoc.createEntityReference("amit");
xmlDoc.appendChild(e1);
Entity e2=(Entity) xmlDoc.createEntityReference("chch");
xmlDoc.appendChild(e2);
Element error = xmlDoc.createElement("error");
error.setAttribute("Type",Error);
errorLog.appendChild(error);
Element source = xmlDoc.createElement("source");
source.appendChild(xmlDoc.createTextNode(src));
error.appendChild(source);
Element target = xmlDoc.createElement("target");
target.appendChild(xmlDoc.createTextNode(trg));
error.appendChild(target);
} catch (Exception ex) {
return xmlDoc;
}It seem to be failing in creating entities Help plzzzzzzzzzzzzzzzzzzzzzzI want out put like
<?xml version="1.0"?>
<!ENTITY amit ' xyz'>
<errorLog>
<error Type="Error">
<source> this is </source>
<target>Yes</target>
</error></errorLog>
bUT iT gives rest except Entity part
Help!!!!!!!!!!!! -
Deleting Nodes from XML Tree (JTree)
I have created a XML Tree(extended from JTree) using XNodes ( extended from DefaultMutableTreeNode)
After some insertions, i need to delete certain nodes from the XML Tree.. but after deletion, XNode will be null.
subroutine is as follows...
appreciates any advice
Thanx
private XNode RemoveExtraNode( XNode xNode ){
int child;
String nodeType;
XNode childNode=null;
if ( (child=xNode.getChildCount() ) > 0){
for(int i=0;i<child;i++){
childNode=(XNode)xNode.getChildAt(i);
nodeType = childNode.getType();
if(nodeType.equals("DTD") )
childNode.removeFromParent();
}//end for (int i=1;i<child;i++)
}//endif((child=xNode.getChildCount())!=0)
return xNode;
}//RemoveExtraNodeHi IKEDA
Thanx for the reply.
I have tried xNode.remove(childNode) b4 and it still return a null JTree.
Anyway fyi i discover i can delete last child of xNode and return the correct java tree. therefore to delete a node of my choice i simply insert its next sibling nodes in its place and delete that particular node when it becomes the last child. -
XML TREE calling external .swf
Thanks to some research and the help from you guys, I am
getting the hand of
this XML tree business for Flash 8.
Now, my question to you is this:
How can I create a clickable link for (let's say) my nome
Fornecedor 1.
I would like to click on this link and call an external .swf,
which I would
load into an empty MC.
Thanks again!
<node label="Comercio e Servicos">
<node label="Materiais Basicos">
<node label="areia">
<node label="SP">
<node label="Fina">
<node label="Fornecedor 1" /> //
THIS WOULD BE THE CLICKABLE ITEM to call an external swf.
<node label="Fornecedor 2" />
</node>
<node label="Media">
<node label="Fornecedor 1" />
<node label="Fornecedor 2" />
</node>
<node label="Grossa">
<node label="Fornecedor 1" />
<node label="Fornecedor 2" />
</node>
</node>To sum up:
Clicking on a <node label> to call an external .swf
"Sergiomon" <[email protected]> escreveu na
mensagem
news:eli0tj$aqd$[email protected]..
> Thanks to some research and the help from you guys, I am
getting the hand
> of this XML tree business for Flash 8.
>
> Now, my question to you is this:
>
> How can I create a clickable link for (let's say) my
nome Fornecedor 1.
> I would like to click on this link and call an external
.swf, which I
> would load into an empty MC.
>
> Thanks again!
>
>
>
> <node label="Comercio e Servicos">
> <node label="Materiais Basicos">
> <node label="areia">
> <node label="SP">
> <node label="Fina">
> <node label="Fornecedor 1" /> //
> THIS WOULD BE THE CLICKABLE ITEM to call an external
swf.
> <node label="Fornecedor 2" />
> </node>
> <node label="Media">
> <node label="Fornecedor 1" />
> <node label="Fornecedor 2" />
> </node>
> <node label="Grossa">
> <node label="Fornecedor 1" />
> <node label="Fornecedor 2" />
> </node>
> </node>
> -
Hi,
Is there a XML Tree Overview out there?
Like to see all the parameters I can add in my XML tree when I build my XML (.srf) Form.
Edited by: Rune Brattas on May 5, 2008 2:43 PMHi Rune,
as much as i know there's no XML tree description.
create yourself one with the screenpainter.
place every item type on the screen and save it.
i know its not sexy or really helpful ...
good night & regards
David -
Looking for com.sun.xml.tree package
Hi,
I�m looking for a jar which contains the XmlDocument class to download.
I found the package, (it�s com.sun.xml.tree) but I cannot find where the package/jar is to download it.
Your help will be much appreciated.
Thank you,
ChrisI have all latest jars (jaxp, xerces, xalan, jdom, dom4j and any related jars). I have w3c DOM and i have been trying to convert it to JDOM and dom4j using relevant APIs. i keep getting following error.
Exception in thread "main" java.lang.AbstractMethodError: com.sun.xml.tree.Eleme
ntNode.getNamespaceURI()Ljava/lang/String;
at org.dom4j.io.DOMReader.readElement(DOMReader.java:181)
at org.dom4j.io.DOMReader.readTree(DOMReader.java:106)
at org.dom4j.io.DOMReader.read(DOMReader.java:88)
Can you advise what could be the reason and how to resolve this?
FYI : my w3c DOM has been created with com.sun.xml.tree.XmlDocumentBuilder class and other methods of the package. I need to resolve this error at earliest to move forward.
I would apprecaite early response at [email protected]
Thanks, -
Import com.sun.xml.tree.XmlDocument
Hello! Can some one help me on the following problem?
I am writing a DOM parser and I need to print out the modified xml file. So I want to use the write funcition defined in the com.sun.xml.tree.XmlDocument library. But this package is NOT included in JAXP package. Where shall I get this com.sun.xml.tree.XmlDocument library?
Any help is greatly appreciated.You are WRITING an XML parser? Hopefully you meant that you were USING an XML parser. If you are using JAXP (which does include an XML parser) then you don't need that package to output XML. The example you got that idea from is obsolete.
If your question is "How to use JAXP to write XML from a Document object?" then this is a FAQ here. Perhaps the search function is working and you could find the answer in this forum; I recall that it involves creating a Transformer whose input is the Document and whose output is wherever you wanted the XML to go to. -
Creating XML from large result sets
We are trying to create XML docs from queries that return somewhere in the neighborhood of 13000+ rows, each with as many as 30 columns. It seems someplace deep within the xmlgen utility or the xsu methods, we throw an OutOfMemoryError. This happens whether we run as a java stored procedure, a pl/sql stored procedure, pl/sql script or java servlet. It looks like the top of the stack shows the problem occurs trying to extendCapacity in a StringBuffer. We're running 8.1.6 with java 1.2.2 and xsu 1.2. Has anyone had to query large amounts of data like this and if so, how did you go about it? Is there a slick way to break things up and then string everything back into 1 big xml doc? Any help would be greatly appreciated. Thanks.
I guess you can use pagination,
either using xsu or Top N Queries and then you could merge all the pages in an unique XML or DOM tree prior to persist it to disk.
With XSU:
Go to the following link for a clear explanation:
<http://technet.oracle.com/docs/products/oracle8i/doc_library/817_doc/appdev.817/a86030/adx04x11.htm#1008351>
With Top N queries:
Go to the following thread of this forum to see a similar question I raised and it was answered in detail:
<http://technet.oracle.com:89/ubb/Forum11/HTML/004711.html>
- Jose Angel - -
Creating a tree structure in jsp- URGENT
Hi,
I need to create a tree structure using jsp. Can anybody help me out.
Thanks in advance.to do what? to store what? be more specific dude. As a first suggestion use XML.
-
How can I create a Tree with Color Picker icons?
I'm a newbie to Flex. I want to create a tree which has color
picker icons.
As an analogy for the Mac users out there, I envision a
control like the Calendars section in iCal, where you can specify
the color for each individual node. These colors are then used in
other parts of the application.
The Flex 3 documentation specifies four methods for setting
node icons on a Tree control, none of which seems to suit my needs:
-The folderOpenIcon, folderClosedIcon, and defaultLeafIcon
properties
-Data provider node icon fields
-The setItemIcon() method
-The iconFunction property
In other words, I want to "setItemIcon" to an mx:ColorPicker,
if that makes any sense.
Is there a standard way of doing this? If not, how can I go
about implementing such a control? Thanks in advance!well, Network UI should be used.
-
How to create a tree view in adobe configurator
Hi
How to create a tree view in adobe configurator
ThanksPlease, can you explain what you mean exactly?
Maybe you are looking for
-
Hello; Can documents and posters with photos and text created in pages be printed by a photo lab, or is it only on my own printer? I can save my document onto a USB flash drive, but then will the photo lab be able to open it to print? do you know ho
-
How to start a function when double-clicked in a JTable
hi there, i got a problem, i want that my JTable reacts when i make a double-click on any row... so that i can start a method that does the things i want to... how can i realize that? thx anyway Errraddicator
-
Double Clicking files in Explorer won't open them in PS
Since I upgraded from Photoshop CS3 to CS5, I have been unable to open JPGs and GIFs by double clicking on them in WIndows Explorer -- though it will open PSD files that way. When I double-click a GIF or JPG file, it brings up the window asking what
-
Will only hold if I press a finger on the screen. Same website works fine on Safari.
-
Hi, In my dynpro I have a "text box" to enter a name of a file. How can I add a matchcode to this "text box" so as to I can select a file ? (I want to see the typical window to select a file). Thanks