/ / Skopiuj dane XML2 do XML1 - xml, vb.net

Skopiuj dane XML2 do XML1 - xml, vb.net

Mam jeden XML1 w następujący sposób.

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

Mój drugi XML2 to

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

Teraz chcę dołączyć / skopiować dane w moim XML1 z XML2. Po węźle <Height> w XML1 chcę dołączyć dane z XML2 po węźle <Employee>.

Moje końcowe wyjście powinno być.

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

Próbowałem tego kodu, ale pobieranie wyjątku obiektu nie było ustawione na instancję.

 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

Próbowałem również innych metod, ale nie działałem. Sugeruję, jak możemy to zrobić w VB.Net Proszę zauważyć, że używam XMLDocument

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz spróbować w ten sposób:

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