powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / преобразовать XML с помощью XSL и отобразить в JTree
2 сообщений из 2, страница 1 из 1
преобразовать XML с помощью XSL и отобразить в JTree
    #37008214
Klech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть XML файл:
Tree.xml

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns=" http://www.w3.org/2001/XMLSchema" targetNamespace=" http://www.example.org/ldapShemTree" xmlns:tns=" http://www.example.org/ldapShemTree" elementFormDefault="qualified">

<element name="server" type="tns:server"></element>

<complexType name="server">
<sequence>
<element name="instance" type="tns:instance" minOccurs="1" maxOccurs="unbounded"></element>
</sequence>
</complexType>

<complexType name="instance">
<sequence>
<element name="rootDSE" type="tns:rootDSE" minOccurs="1"
maxOccurs="1">
</element>
</sequence>
</complexType>

<complexType name="rootDSE">
<sequence>
<element name="entry" type="tns:entry" minOccurs="1" maxOccurs="unbounded"></element>
<element name="distinguishedName"
type="tns:distinguishedName" minOccurs="1" maxOccurs="1">
</element>
<element name="structuralobjectClass" type="string" minOccurs="1" maxOccurs="1"></element>
<element name="attribute" type="tns:attribute" minOccurs="1" maxOccurs="unbounded"></element>
</sequence>
</complexType>

<complexType name="entry">
<sequence>
<element name="distinguishedName"
type="tns:distinguishedName" minOccurs="1" maxOccurs="1">
</element>
<element name="structuralobjectClass" type="tns:objectClass"
minOccurs="1" maxOccurs="1">
</element>
<element name="attribute" type="tns:attribute" minOccurs="1"
maxOccurs="unbounded">
</element>
<element name="auxiliaryObjectClass" type="tns:objectClass"
minOccurs="1" maxOccurs="unbounded">
</element>
<element name="abstractObjectClass"
type="tns:objectClass" minOccurs="1" maxOccurs="unbounded">
</element>
</sequence>
</complexType>

<complexType name="distinguishedName">
<sequence>
<element name="relativeDistinguishedName"
type="tns:relativeDistinguishedName" minOccurs="1" maxOccurs="unbounded">
</element>
</sequence>
</complexType>

<complexType name="relativeDistinguishedName">
<sequence>
<element name="nameValuePair" type="tns:nameValuePair" minOccurs="1" maxOccurs="unbounded"></element>
</sequence>
</complexType>

<complexType name="nameValuePair">
<attribute name="name" type="string"></attribute>
<attribute name="value" type="string"></attribute>
</complexType>

<complexType name="attribute"></complexType>

<complexType name="objectClass"></complexType>
</schema>

Java файл:

XMLTree.java

public class XMLTree implements TreeModel {
private org.w3c.dom.Document doc;
public XMLTree (org.w3c.dom.Document doc){
this.doc = doc;
}
public Object getRoot(){
return doc.getDocumentElement();
}
public int getChildCount(Object parent){
Node node = (Node) parent;
NodeList list = node.getChildNodes();
return list.getLength();
}
public Object getChild(Object parent, int index){
Node node = (Node) parent;
NodeList list = node.getChildNodes();
return list.item(index);
}
public int getIndexOfChild(Object parent, Object child){
Node node = (Node) parent;
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++)
if (getChild(node, i) == child)
return i;
return -1;
}
public void addTreeModelListener(TreeModelListener l) {}
public boolean isLeaf(Object node) {
return getChildCount(node) == 0;
}
public void removeTreeModelListener(TreeModelListener l) {}
public void valueForPathChanged(TreePath path, Object newValue) {}
}

DOMTreeTest.java

public class DOMTreeTest extends JFrame {
JTree tree;
org.w3c.dom.Document doc;
DocumentBuilder docBuilder;
public DOMTreeTest(){
this.setTitle("DefaultTreeModelDemo");
setLayout(new BorderLayout());
this.setBounds(350,150,400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawTree();
setVisible(true);
}
public void DrawTree(){
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
try {
docBuilder = docBuilderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
}
try {
doc = docBuilder.parse("files/Tree.xml");

} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String s1=doc.getLocalName();
tree = new JTree();
JTree tree = new JTree(new XMLTree(doc));
JScrollPane s = new JScrollPane(tree);
this.getContentPane().add(s,BorderLayout.CENTER);
}


public static void main(String[]args){

new DOMTreeTest();

}
}

вот JTree.xml нужно преобразовать с помощью XSL в такой вид, чтобы отпарсеный файл «doc = docBuilder.parse("files/Tree.xml")», передав в «JTree tree = new JTree(new XMLTree(doc))», корректно отображал иерархию XML файла в JTree.
...
Рейтинг: 0 / 0
преобразовать XML с помощью XSL и отобразить в JTree
    #37008229
Klech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть проблема в том что XML содержит "tns:" и из-за этого не корректно отображается иерархия((
кто знает как преобразовать этот xml с помощью xsl, чтобы нормально работало?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / преобразовать XML с помощью XSL и отобразить в JTree
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]