Habrá alguna forma mas efectiva que no sea haciendo un foreach procesando nodo por nodo del objeto XML para unir dos XmlNodeList?
el problema es que tengo un directorio con múltiples bases de datos y el sistema los argará todos y para procesar todo después quiero tener una sola variable y no un array de variables, normalmente podría mantener un array de XmlNodeList pero quiero buscar una alternativa que me permita unirlos talves con alguna función u operador.
Dim DBArch As String, DBs() As String
DBs = Directory.GetFiles(DBURL, "*.xml", SearchOption.AllDirectories)
Dim DBXML(DBs.Length) As XmlDocument
Dim DBNodo(DBs.Length) As XmlNodeList
Dim Id As Integer = 0
For Each DBArch In DBs
DBXML(Id).Load(DBArch)
DBNodo(Id) = DBXML(Id).SelectNodes("/AutoRemoveXDB/item")
Id = Id + 1
Next
DB = DBNodo ' Acá debería unir el array de DBNodo solamente en DB.
mejor usaré el array de listado multidimensional para poder manejar el id nombre y descripción de cada base de datos por sepado.
gracias de todas formas.
Dim DBArch As String, DBs() As String
DBs = Directory.GetFiles(DBURL, "*.xml", SearchOption.AllDirectories)
Dim DBXML(DBs.Length) As XmlDocument
ReDim DB(DBs.Length)
Dim Id As Integer = 0
Dim NDB As Integer = 0
For Each DBArch In DBs
Try
DBXML(Id).Load(DBArch)
DB(Id) = DBXML(Id).SelectNodes("/AutoRemoveXDB/item")
NDB = NDB + DB(Id).Count
Id = Id + 1
Catch ex As Exception
' Next
End Try
Next
If DB.Length > 1 Then
Estado(DB.Length & " Bases de datos cargadas.")
Else
Estado(DB.Length & " Base de datos cargada.")
End If
If NDB > 1 Then
Estado(NDB & " Tareas cargadas.")
Else
Estado(NDB & " Tarea cargada.")
End If
Hola,
Si metes el XML dentro de un DataSet puedes utilizar el método Merge :)
Si quieres puedes realizar un benchmark pero yo de todos modos creo que es la forma más óptima. Solo creas dos DataSets, usas el método LoadXml, y luego Merge.
That's all :)