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