Я поставил тот же вопрос на сайте Mathworks.Как добавить дочерний узел к существующему родительскому узлу, переданному функции?
Я пытаюсь отправить структуру xml функции, добавить новый узел и вернуть измененную структуру. Это связано с тем, что добавляемая дочерняя структура будет очень распространена для многих «.xml» файлов, и я не хочу переписывать один и тот же код каждый раз.
Если я не в функции следующие работы:
docNode = com.mathworks.xml.XMLUtils.createDocument('ugcs-Transfer');
parent_node = docNode.createElement('parent')
docNode.appendChild(parent_node)
child_node = docNode.createElement('child');
parent_node.appendChild(child_node);
Если я пытаюсь передать его функции, как это:
docNode = com.mathworks.xml.XMLUtils.createDocument('ugcs-Transfer');
parent_node = docNode.createElement('parent')
docNode.appendChild(parent_node)
docNode = myFunction(docNode)
Эта функция не будет добавлять ребенка к родительский узел:
Z = my_function(docNode)
child_node = docNode.createElement('child');
parent_node.appendChild(child_node); % This line produces an error:
%Undefined variable "parent_node" or ...
%class "parent_node.appendChild".
Z = docNode
end
Требуемое конечное состояние будет:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent>
<child>
Любая помощь будет оценена,
Пол
Спасибо за это. Коллега предоставил другое средство для этого: parent_node = docNode1.getElementsByTagName ('Parent'). Item (0) –
@Paul_Sponagle вправо, это определенно возможно. Я рассматриваю это как раздражающее и предпочитаю рекурсивные методы для такого рода вещей (чего это не так). Однако, безусловно, возможно сделать это и по-своему (и иногда это должно быть сделано именно так). Просто имейте в виду, что у каждого родителя может быть несколько детей, а затем вам нужно выполнить поиск среди всех детей, и все будет в порядке. Кроме того, даже если вы вернете ребенка, вам не нужно его использовать, но в случае, если вы будете использовать его, вы будете действительно счастливы, что сможете. – patrik