/ / XML2データをXML1にコピーする - xml、vb.net

XML2データをXML1にコピーする - xml、vb.net

私は次のように1つのXML1を持っています。

-<Master>
<UserDetails>
<UserName>Michael</UserName>
<Password>Password</Password>
</UserDetails>
<Height>155</Height>
<Weight>150lb</Weight>
<OtherDetails>
<Phone>987654327</Phone>
<Email>mich.int@ymail.com</Email>
</UserDetails>
<company>155</company>
<address>155 beecroft</address>
</Master>

私の他のXML2は

  -<Master>
<Company>
<Name>CCD</Name>
<ID>122975</ID>
</Company>
<Employee>15500</Employee>
<Shift>No</Shift>
<OtherDetails>
<Phone>020 55667354</Phone>
<Email>ccd.int@ymail.com</Email>
</OtherDetails>
<address>155 Bay street </address>
<Time>10.50</Time>
</Master>

今私はXML2から私のXML1のデータを追加/コピーしたい。ノードの後 <Height> 私はノードの後に​​XML2からデータを追加したい <Employee>.

私の最終的な出力はすべきです。

-<Master>
<UserDetails>
<UserName>Michael</UserName>
<Password>Password</Password>
</UserDetails>
<Height>155</Height>
<Shift>No</Shift>
<OtherDetails>
<Phone>020 55667354</Phone>
<Email>ccd.int@ymail.com</Email>
</OtherDetails>
<address>155 Bay street </address>
<Time>10.50</Time>
</Master>

私はこのコードを試しましたが、オブジェクト参照の例外がインスタンスに設定されていません。

 Dim PROD As XmlNode = XML1.SelectSingleNode("/MASTER")
Dim PAG As XmlNode = XML2.SelectSingleNode("/MASTER")
For Each node As XmlNode In PROD.SelectNodes("SHIFT |...... other nodes")
PAG.AppendChild(XML1.ImportNode(node, True))
Next

私も他の方法を試みたが、仕事をしなかった、私たちはVB.Netでそれを行う方法を提案してください 私はXMLDocumentを使用していることに注意してください

回答:

回答№1は0

この方法で試すことができます:

Dim height = XML1.SelectSingleNode("/Master/Height")
"select all nodes after <Height>"
Dim nodesAfterHeight = XML1.SelectNodes("/Master/Height/following-sibling::*")
"select all nodes after <Employee>"
Dim nodesAfterEmployee = XML2.SelectNodes("/Master/Employee/following-sibling::*")

"remove all nodes after <Height> in XML1"
For Each node As XmlNode In nodesAfterHeight
node.ParentNode.RemoveChild(node)
Next
"add all nodes after <Employee>"
For Each node As XmlNode In nodesAfterEmployee
height.ParentNode.InsertAfter(XML1.ImportNode(node, True), height)
Next