0
XMLファイルをフレームワークVaadinでJavaのツリーに変換したい。しかし、1行でそれは木を取得し、私は小さな一のXML作ら理由を、理解するために私は理解していない:XMLとツリー、ツリーを取得する
<overlay>
<type>bgp</type>
<bgp>
<bgp-asn>12</bgp-asn>
</bgp>
</overlay>
<overlay-routing>
<type>test</type>
<b>
<bgp-as>11</bgp-as>
</b>
</overlay-routing>
だから、あなただけの私を見ることができますXMLで私の行の名前を変更し、それは動作しますが、 "bgp-asn"では動作しませんし、本当に理解しません。それはXMLの重要な仕事ですか?それとも何か? 私は自分のコードを置くことができます。
private Component test(){
VerticalLayout ver = new VerticalLayout();
ver.setSizeFull();
TextArea text = new TextArea();
Button send = new Button("send");
tre = new Tree();
tre.setSizeFull();
send.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
if(text.isEmpty()){
return;
}
Node node = getData(text.getValue());
loadTree(tre, null, node);
}
});
private Document getData(String data){
data = "<capsule>" + data;
data = data + "</capsule>";
try {
if(data == null){
return null;
} else {
try{
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
} catch (ParserConfigurationException e){
throw new RuntimeException("cannot create a data source", e);
}
return builder.parse(new ByteArrayInputStream(data.trim().getBytes("UTF-8")));
}
//return data == null ? null : builder.parse(new ByteArrayInputStream(data.trim().getBytes("UTF-8")));
} catch (SAXException | IOException e) {
throw new RuntimeException("cannot load data from content", e);
}
}
とloadtree:あなたは間違っているものを知っている場合
private void loadTree(Tree tree, Object parentID, Node element){
if(tree == null || element == null){
return;
}
final String itemID = (element.getNodeType() == Node.TEXT_NODE ? element.getNodeValue() : element.getNodeName()).trim();
if(itemID.length() == 0){
return;
}
tree.addItem(itemID);
if(parentID != null){
tree.setParent(itemID, parentID);
}
NodeList children = element.getChildNodes();
System.out.println(parentID);
for(int i = 0, n = children.getLength(); i < n; i++){
loadTree(tree, itemID, children.item(i));
}
if(children.getLength() > 0){
tree.expandItem(itemID);
} else{
tree.setChildrenAllowed(itemID, false);
}
}
を、それは素晴らしいことでしょう! ありがとうございました!