Java-将XML源代码放入另一个源代码中



你好,

我需要将这个xml放入另一个xml中。我添加标签作为根。有人能帮我吗?

请参阅示例:

来源:

<?xml version="1.0" encoding="UTF-8"?>
    <TBCOMPROBANTE>
       <cuitEmpresa>N11</cuitEmpresa>
       <numeroComprobante>N9</numeroComprobante>
       <nombreArchivo>A41</nombreArchivo>
       <codigoIntegridad>A50</codigoIntegridad>
       <validacionesRemitos class="list">
          <remito>
             <numeroUnico>A16</numeroUnico>
             <procesado>A2</procesado>
          </remito>
          <remito>
             <numeroUnico>A16</numeroUnico>
             <procesado>A2</procesado>
             <errores class="list">
                <error>
                   <codigo>N2</codigo>
                   <descripcion>A150</descripcion>
                </error>
             </errores>
          </remito>
       </validacionesRemitos>
    </TBCOMPROBANTE>

Target(请参阅新的Arba标签a root(

<?xml version="1.0" encoding="UTF-8"?>
<Arba>
   <TBCOMPROBANTE>
      <cuitEmpresa>N11</cuitEmpresa>
      <numeroComprobante>N9</numeroComprobante>
      <nombreArchivo>A41</nombreArchivo>
      <codigoIntegridad>A50</codigoIntegridad>
      <validacionesRemitos class="list">
         <remito>
            <numeroUnico>A16</numeroUnico>
            <procesado>A2</procesado>
         </remito>
         <remito>
            <numeroUnico>A16</numeroUnico>
            <procesado>A2</procesado>
            <errores class="list">
               <error>
                  <codigo>N2</codigo>
                  <descripcion>A150</descripcion>
               </error>
            </errores>
         </remito>
      </validacionesRemitos>
   </TBCOMPROBANTE>
</Arba>

Cerbero---------------------------------------------------------------------谢谢

您可以通过以下步骤完成:

  1. 使用Java DOM Parser解析输入文件
  2. 查找感兴趣的节点
  3. 使用新节点创建新文档
  4. 从第一个文档复制节点,并将其添加为新节点的子节点
  5. 最后,将新文档写入文件

这是我的示例代码

import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XMLWrapper {
    public static void main(final String[] args) throws Exception {
        final File inputFile = new File(
                "/Users/richard/Documents/workspace/so/input.xml");
        final File outputFile = new File(
                "/Users/richard/Documents/workspace/so/output.xml");
        // Read in the file using the DOM parser
        final DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        final Document document = factory.newDocumentBuilder().parse(inputFile);
        // Find the TBCOMPROBANTE node
        final NodeList childNodes = document
                .getElementsByTagName("TBCOMPROBANTE");
        final Node chosenNode = childNodes.item(0);
        // Create a new document and add the extra node
        final Document newDocument = factory.newDocumentBuilder().newDocument();
        final Element createElement = newDocument.createElement("Arba");
        newDocument.appendChild(createElement);
        // Import the node we found and append it to the new element
        final Node importNode = newDocument.importNode(chosenNode, true);
        createElement.appendChild(importNode);
        newDocument.normalize();
        // Use a Transformer to write the xml to outputFile
        final TransformerFactory tFactory = TransformerFactory.newInstance();
        final Transformer transformer = tFactory.newTransformer();
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        final DOMSource source = new DOMSource(newDocument);
        final StreamResult result = new StreamResult(outputFile);
        transformer.transform(source, result);
    }
}

相关内容

最新更新