Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2010, 14:15
Nati_K
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Obtener un dato concreto de un XML para cambiarlo

Amigos,
tengo una consulta que me vuelve locaaaaa , por ahi ustedes me pueden ayudar a armar esto. Tengo un XML del filezilla con este aspecto:

Código:
<filezilla>
	<Settings>
		<Item name="Number of Threads" type="numeric">2</Item>
		<Item name="Maximum user count" type="numeric">0</Item>
		<Item name="Timeout" type="numeric">120</Item>
		<Item name="Custom PASV IP" type="string">192.168.1.14</Item>
		<Item name="Custom PASV min port" type="numeric">20000</Item>
		<Item name="Custom PASV max port" type="numeric">20010</Item>
		
</Settings>
</filezilla>
yo lo que necesito es traer a un Textbox el valor del item Custom PASV IP o sea: 192.168.1.14 para poder cambiarlo y guardar el cambio.
Alguien sabe como puedo hacerlo?


(Estuve armandome un código donde pude llegar a leer todo el contenido del XML, llevarlo a un textbox multilinea, hacerle cambios y guardarlo.)


Aca el codigo:
Código HTML:
<%@ Page language="VB" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
  <HEAD>
    <title>Default</title>
    <script runat="server">
 Dim xmlSource As System.Xml.XmlDocument = New System.Xml.XmlDocument

    
    Private Sub LoadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim xmlDocStream As System.IO.Stream = GetXmlDoc(XmlSourceTextBox.Text)
        If (Not (xmlDocStream) Is Nothing) Then
            xmlSource.Load(xmlDocStream)
            ResultText.Text = xmlSource.InnerXml
        Else
            ResultText.Text = "No se puede abrir el XML."
        End If
    End Sub
    
    Public Shared Function GetXmlDoc(ByVal xmlsource As String) As System.IO.Stream
        Dim stream As System.IO.Stream = Nothing
        If (xmlsource.StartsWith("<?xml") OrElse xmlsource.StartsWith("<schema")) Then
            stream = New System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource))
        Else
            Try 
                Dim xmluri As System.Uri = New System.Uri(xmlsource)
                If xmluri.IsFile Then
                    stream = New System.IO.FileStream(xmlsource, System.IO.FileMode.Open)
                Else
                    Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(xmluri),System.Net.HttpWebRequest)
                    Dim response As System.Net.WebResponse = request.GetResponse
                    stream = response.GetResponseStream
                End If
            Catch e As Exception
                
            End Try
        End If
        Return stream
    End Function
    
    Private Sub SaveButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If ((xmlSource Is Nothing)  _
                    OrElse (xmlSource.InnerText = "")) Then
            xmlSource.LoadXml(ResultText.Text)
        End If
        Try 
            Dim path As String = FilePathText.Text.Substring(0, FilePathText.Text.LastIndexOf("\"))
            If System.IO.Directory.Exists(path) Then
                Try 
                    xmlSource.Save(FilePathText.Text)
                    SaveResultsText.Text = (FilePathText.Text + " se grabo ok.")
                Catch saveErr As Exception
                    SaveResultsText.Text = saveErr.ToString
                End Try
            Else
                SaveResultsText.Text = "No existe el directorio, pruebe otro."
                FilePathText.Text = ""
            End If
        Catch saveError As Exception
            SaveResultsText.Text = saveError.ToString
        End Try
    End Sub
    </script>
  </HEAD>
  <body>
    <form id="Form1" method="post" runat="server">
      <asp:textbox id="XmlSourceTextBox" runat="server" Width="380" Height="162px" TextMode="MultiLine"></asp:textbox><br />
      <asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button><br />
      <asp:TextBox id="ResultText" runat="server" Width="380" Height="194px" TextMode="MultiLine"></asp:TextBox><br />
      <asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button><br />
      <asp:TextBox id="FilePathText" runat="server" Width="380"></asp:TextBox><br />
      <asp:TextBox id="SaveResultsText" runat="server" TextMode="MultiLine" Height="211px" Width="380px"></asp:TextBox>
    </form>
  </body>
</HTML> 
Gracias!!!