XML нуждался в том, чтобы ввести в XML1 XML2

XML1


<?xml version="1.0" encoding="ISO-8859-1"?>
<EnvioDTE xmlns="EnvioXXX" version="1.0">
<SetDTE ID="Set728384">
<Caratula version="1.0">     
<Fecha>2015-06-02</Fecha>
<Numero>12345</Numero>
<Envio>2016-12-03T01:09:25</Envio>
</Caratula>
<DTE version="1.0">
<Encabezado>
<IdDoc>
<TipoD>105</TipoD>
<Folio>111705</Folio>
<FchEmis>2016-12-03</FchEmis>
</IdDoc>
<Emisor>
<IDEmisor>7251827106-1</IDEmisor>
<RznSoc>Comercializadora SPA</RznSoc>
</Emisor>
<Receptor>
<IDRecep>1216298490-3</IDRecep>
<RznSocRecep>Juana Isabel </RznSocRecep>
</Receptor>
<Totales>
<Monto>861758</Monto>
</Totales>
</Encabezado>
</DTE>
               -------------------------------------Aqui necesito insertar el XML2
</SetDTE>
</EnvioDTE>



XML2

<?xml version="1.0" encoding="ISO-8859-1"?>
<DTE version="1.0">
<Encabezado>
<IdDoc>
<TipoD>110</TipoD>
<Folio>111705</Folio>
<FchEmis>2016-10-01</FchEmis>
</IdDoc>
<Emisor>
<IDEmisor>12345827106-1</IDEmisor>
<RznSoc>El Librero</RznSoc>
</Emisor>
<Receptor>
<IDRecep>23678998490-3</IDRecep>
<RznSocRecep>Pedro Perez </RznSocRecep>
</Receptor>
<Totales>
<Monto>334589</Monto>
</Totales>
</Encabezado>
</DTE>

и я пробую это сделать так и оно я не функционирует

 Private Sub AgregaD()
 Dim doc1 As XElement = XElement.Load("XML1.xml")
 Dim NodoP As XElement = (From nodo In doc1.Descendants("SetDTE") Where nodo.Attribute("ID").Value = "Set728384").FirstOrDefault()

 Dim doc2 As XElement = XElement.Load("XML2.xml")

 Dim nuevoNodo As New XElement(doc2)
 NodoP.Add(nuevoNodo)
 NodoP.Save("ResultadoD.xml")
 End Sub
2
задан 19.12.2016, 23:45
0 ответов

Как у первого документа есть заявление <EnvioDTE xmlns="EnvioXXX" version="1.0"> в твоей программе VB.NET ты нуждаешься в том, чтобы работать с Dim df as XNamespace = doc1.Root.Name.Namespace и тогда использовать это в Dim NodoP As XElement = (From nodo In doc1.Descendants(df + "SetDTE") Where nodo.Attribute("ID").Value = "Set728384").FirstOrDefault(). Таким образом ты можешь выбирать элемент и добавлять нового, как ты обработал информацию с NodoP.Add(nuevoNodo).

Однако, если элементы второго документа не используют тот же namespace xmlns="EnvioXXX" возможно, что результат не желанное, скажи нам, нуждаешься ли ты в большем количестве помощи.

0
ответ дан 03.12.2019, 18:27
  • 1
    Мартин, очень благодарный, и превосходный añ или 2017, это был namespace. –   20.01.2017, 17:05
  • 2
    Конечно, что теряет первую линию < EnvioDTE xmlns =" EnvioXXX" версия =" 1.0" > но я добавляю ее в конце концов. спасибо. –   20.01.2017, 17:05

Теги

Похожие вопросы