我在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