2015-03-15 3 views
0

Я создаю документ KML в Java. Внутри этого я должен добавить много похожих элементов, в результате чего вам нужно добавить функцию, где я могу передать необходимые аргументы.Создание документа в Java

Проблема в том, что когда я пытаюсь добавить часть документа в основной документ, он показывает ошибку или создает неверный документ. Вот фрагмент кода:

Element style = doc.createElement("Style"); 
style.setAttribute("id", "green"); 
dnode.appendChild(style); 
Element polyStyle = doc.createElement("PolyStyle"); 
style.appendChild(polyStyle); 
Element color = doc.createElement("color"); 
color.appendChild(doc.createTextNode("5014F064")); 
polyStyle.appendChild(color); 
Element iconStyle = doc.createElement("IconStyle"); 
style.appendChild(iconStyle); 
color = doc.createElement("color"); 
color.appendChild(doc.createTextNode("5014F064")); 
iconStyle.appendChild(color); 

Элемент "dnode" является элемент документа в формате XML. Я хочу попробовать что-то вроде этого:

doc.appendChild(addFeatureStyle("red", "501400FA")); 

Вызывается три раза с различными параметрами, но понятия не имеет, как включить его. Я хочу добавить функцию, написанную выше, вызывая фрагмент кода.

Следует ли возвращать элемент «addFeatureStyle» или строку или что-то еще?

ответ

1

Я не уверен, я понимаю ваш вопрос, но я постараюсь ответить:

В случае, если функция «addFeatureStyle» возвратный элемент, или строка, или что-то еще?

Вы называете метод appendChild() со значением возвращаемого addFeatureStyle("red", "501400FA") в качестве аргумента.

documentation of appendChild() показывает, что в качестве аргумента требуется узел. Таким образом, возвращаемый тип addFeatureStyle() не может быть строкой: String не реализует интерфейс узла. Возвращаемый тип addFeatureStyle() должен быть Node или класс, реализующий Node, или интерфейс, простирающийся Node.

+0

Итак, с возвратом типа Element, следует appendChild принять это или нет? – Kakofonn

+0

См. Http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Element.html: он говорит: * Все суперинтерфейсы: Узел * Таким образом, Element расширяет узел, поэтому Element является узлом. Итак, да, конечно, вы можете вызвать appendChild() с аргументом Element. –

+0

Да, когда я получил Элемент, он сработал! Решено :) – Kakofonn

Смежные вопросы