Я преобразовываю древовидную структуру в XML-данные. Мое дерево похоже
Company
Department
Employee
Employee
Мне нужен корневой узел Company
, поэтому XML будет выглядеть примерно так
<?xml version="1.0" encoding="UTF-8"?>
<Company>
<Department>
<Employee>
...
</Employee>
</Department>
</Company>
Посмотрев на примеры, решил, что напишу так
public void writeNodes(Element root, NodeBase node) throws XMLStreamException
{
Element elmt = root.addElement(node.getName());
for (NodeBase child : node.getChildren())
{
writeNodes(child);
}
}
public void makeXML(NodeCompany root, String filename)
{
try {
document = DocumentHelper.createDocument();
writeNodes(???, root);
writeFile(document, filename);
}
catch (Exception e)
{
e.printStackTrace();
}
}
Я хочу, чтобы мой корневой узел использовался в качестве корневого, но я не хочу писать повторяющийся код для обработки корневого узла отдельно от его дочерних узлов.
Поскольку в моем дереве всегда будет только один узел компании, я могу выполнить явную проверку в моем writeNodes
методе, чтобы пропустить любые узлы компании, но это выглядит не очень хорошо.
Есть ли способ завершить этот код без дублирования кода?