предполагает следующий XML:Append клонировали дочерний узел к узлу клонированного
<outer>
<entity>
<id>123</id>
<subnode1>
<subnode2>
</entity>
<entity>
<id>124</id>
<subnode1>
<subnode2>
</entity>
</outer>
В целом, я хочу разделить узлы сущностей в отдельные файлы. Я извлек узлы сущности и сохранил их в пределах Карты с соответствующим текстовым значением в качестве ключа карты. Это абсолютно нормально для меня.
Теперь я хочу написать фрагменты в новые XML-файлы (идентификаторы, используемые в качестве имен файлов). Мне нужно сохранить внешние теги. Поэтому я называю следующий метод, чтобы получить внешние узлы:
private static Node cloneEmbeddingAncestors(final Node aItem) {
Node parent = aItem.getParentNode();
if (parent.equals(((Element) aItem).getOwnerDocument())) {
// we've reached top level
return aItem.cloneNode(false);
}
Node clone = cloneEmbeddingAncestors(parent);
return clone.appendChild(aItem.cloneNode(false));
}
При отладке последней строки этого метода, я получаю:
- клон: «[наружный: нуль]» (хорошо выглядит)
- aItem: "[объект: пустой]" (выглядит хорошо, а)
- aItem.cloneNode (ложь): "[объект: нуль]" (выглядит хорошо, как хорошо)
Но: все выражение
- clone.appendChild (aItem.cloneNode (ложь))
также поставляет "[объект: пустой]"?!? (Полученные в результате фрагменты XML также показывают только тег «entity». Я ожидал бы «внешний» тег в файле «внешний» узел на моем отладочном дисплее.)
Теперь, почему это так? Любая помощь очень обостряется! Благодаря!