Jump to content

[Resolvido] Xml - Eliminar Node sabendo um child


jviana

Recommended Posts

Boas, tenho uma problema (o problema final) no meu projeto, e que eu tenho um Botao eliminar no form, e ele para eliminar pesquisa os ID na base de dados XML, e elimina, mas eu nao estou a consegui porque transforma isto:

<?xml version="1.0" encoding="utf-8"?>
<musicasdabanda>
 <musicas>
<id>3</id>
<nome>111</nome>
<compositor>11</compositor>
<programautilizado>11</programautilizado>
<ano>11</ano>
<arranjo>11</arranjo>
<tipo>Marcha Normal</tipo>
<ficheiro>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\3images.jpg</ficheiro>
<pdf>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\31teste.pdf</pdf>
 </musicas>
</musicasdabanda>

Nisto:

<?xml version="1.0" encoding="utf-8"?>
<musicasdabanda>
 <musicas>
 </musicas>
</musicasdabanda>

Ou seja, ele so elimina os childs la dentro, o que eu faço para que isto nao aconteça, nao estou a encontrar nenhuma solunçao e ja pesquisei em muito lado.

Espero que me possam ajudar.

Deixo ainda aqui o meu codigo:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
	Dim elimina As New XmlDocument
	elimina.Load(bdFile)
	Dim nodemdb As XmlNodeList = elimina.SelectNodes("musicasdabanda")
	Dim nodem As XmlNodeList = elimina.SelectNodes("musicasdabanda/musicas")
	For Each nodemusica As XmlElement In nodemdb
		For Each element As XmlElement In nodem
			Dim id As String = element.SelectSingleNode("id").InnerText
			If id = labelnumero.Text Then
				element.RemoveAll()
				elimina.Save(bdFile)
				atualizarlist()
				Exit Sub
			End If
		Next
	Next
End Sub

Mais uma vez obrigado.

PS: Tenho uma malware no PC que me tira os acentos, depois corrijo isso

Learning

  • VB.Net
  • HTML
  • C/C++

Link to comment
Share on other sites

For Each element As XmlElement In nodem
						    Dim id As String = element.SelectSingleNode("id").InnerText
						    If id = labelnumero.Text Then
								    element.RemoveAll()
								    elimina.Save(bdFile)
								    atualizarlist()
								    Exit Sub
						    End If
				    Next

Acho que não estou entendendo o problema, ele está fazendo examente o que você pede, ou seja, pega o elemento música, e o apaga, no element.RemoveAll()

Fernando Lage Bastos - MCP/MCTS/MCPD

Link to comment
Share on other sites

Pois, eu tive assim, mas isso elimina tudo.

Se eu tiver isto:

<?xml version="1.0" encoding="utf-8"?>
<musicasdabanda>
  <musicas>
	<id>3</id>
	<nome>111</nome>
	<compositor>11</compositor>
	<programautilizado>11</programautilizado>
	<ano>11</ano>
	<arranjo>11</arranjo>
	<tipo>Marcha Normal</tipo>
	<ficheiro>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\3images.jpg</ficheiro>
	<pdf>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\31teste.pdf</pdf>
 </musicas>
  <musicas>
	<id>4</id>
	<nome>1123w1</nome>
	<compositor>1defrg1</compositor>
	<programautilizado>11wsed</programautilizado>
	<ano>11</ano>
	<arranjo>1qw1</arranjo>
	<tipo>Marcha Normal</tipo>
	<ficheiro>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\3images\teste12.jpg</ficheiro>
	<pdf>C:\Users\João Viana\Documents\SFTPautas\PastasDasMusicas\31teste\oal.pdf</pdf>
 </musicas>
</musicasdabanda>

Retorna isto:

<?xml version="1.0" encoding="utf-8"?>
<musicasdabanda>

</musicasdabanda>

E eu quero que ele elimine um node, condicionado ao seu Id.

Learning

  • VB.Net
  • HTML
  • C/C++

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.