Построение дерева узлов вручную: как переименовать теги <ObjectNode> - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь настроить код для создания дерева узлов, используя Джексона, который затем можно использовать для написания JSON или XML. Я создал дерево узлов вручную так:

XmlMapper NodeMap = new XmlMapper();

ObjectNode rootNode = NodeMap.createObjectNode();
ObjectNode currentNode = rootNode.putObject("Examples");
currentNode
    .put("Puppy", TRUE)
    .put("Apple", 2)
    .put("Jet", "Li");
currentNode = rootNode.putObject("Single");
currentNode.put("One", 1);

String writePath = "C:/users/itsameamario/Documents/basicXMLtest.xml";
NodeMap.writeValue(new File(writePath), rootNode);

Мой вывод:

<?xml version="1.0"?>
<ObjectNode>
    <Examples>
        <Puppy>true</Puppy>
        <Apple>2</Apple>
        <Jet>Li</Jet>
    </Examples>
    <Single>
        <One>1</One>
    </Single>
</ObjectNode>

Однако я хотел бы иметь контроль над "ObjectNode" и переименовать его в нечто более подходящее.

При ручном построении дерева узлов, как я делал выше, как бы я переименовал его во что-то, чем я могу управлять ?

1 Ответ

0 голосов
/ 12 июня 2019

Для переименования корневого узла вам необходимо использовать ObjectWriter.Попробуйте это:

XmlMapper NodeMap = new XmlMapper();
final ObjectWriter writer = NodeMap.writer().withRootName("Pumpernickel"); //Rename as appropriate

ObjectNode rootNode = NodeMap.createObjectNode();
ObjectNode currentNode = rootNode.putObject("Examples");
currentNode
    .put("Puppy", true)
    .put("Apple", 2)
    .put("Jet", "Li");
currentNode = rootNode.putObject("Single");
currentNode.put("One", 1);

String writePath = "C:/users/itsameamario/Documents/basicXMLtest.xml";
writer.writeValue(new File(writePath), rootNode); // Make sure you replace this line too.

Ваши "ObjectNode" должны быть заменены на "Pumpernickel".Переименуйте по необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...