Avalados por :

Solução para o erro Não é possível exibir a visualização em árvore; Erro ao analisar um documento XML (Fim prematuro do arquivo.) ao converter arquivo XL para XML em Java

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Olá a todos,

Estou trabalhando em um mapeamento Java que lê um arquivo XL e o converte para XML. Estava funcionando bem quando testava no Eclipse, mas ao testá-lo no mapeamento operacional, mostrava "Não é possível exibir a visualização de árvore; Erro ao analisar um documento XML (Fim prematuro do arquivo.)". Por favor, me ajudem.

Por favor, verifiquem o código abaixo:

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

public class Xml_convert extends AbstractTransformation {

public boolean generateXML(File excelFile) {

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.newDocument();

Element catalogElement = document.createElement("document");

document.appendChild(catalogElement);

InputStream input = new FileInputStream(excelFile);

HSSFWorkbook workbook = new HSSFWorkbook(input);

HSSFSheet spreadsheet = workbook.getSheetAt(0);

System.out.println("Número de linhas =" + spreadsheet.getLastRowNum());

for (int i = 1; i <= spreadsheet.getLastRowNum(); i++) {

HSSFRow row = spreadsheet.getRow(i);

Element journalElement = document.createElement("Element");

catalogElement.appendChild(journalElement);

Element nameElement = document.createElement("name");

journalElement.appendChild(nameElement);

nameElement.appendChild(document.createTextNode(row.getCell((short) 0).toString()));

Element idElement = document.createElement("id");

journalElement.appendChild(idElement);

idElement.appendChild(document.createTextNode(row.getCell((short) 1).toString()));

Element desgElement = document.createElement("desg");

journalElement.appendChild(desgElement);

desgElement.appendChild(document.createTextNode(row.getCell((short) 2).toString()));

}

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer = tFactory.newTransformer();

DOMSource source = new DOMSource(document);

StreamResult result = new StreamResult(new File("C:\\file.xml"));

transformer.transform(source, result);

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

Document doc = db.parse("");

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

public void gettingText(Document doc) {

XMl xml = new XMl();

Element root = doc.getDocumentElement();

NodeList nodeList = doc.getElementsByTagName("Element");

for (int i = 0; i < nodeList.getLength(); i++) {

Node node = nodeList.item(i);

if (node.getNodeType() == Node.ELEMENT_NODE) {

Element element = (Element) node;

NodeList nodelist = element.getElementsByTagName("name");

Element element1 = (Element) nodelist.item(0);

NodeList name = element1.getChildNodes();

System.out.println("Nome : " + (name.item(0)).getNodeValue());

xml.setName((name.item(0)).getNodeValue()); // Para recuperar

// texto del

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Anusha,

Um problema com o código é:

Você precisa trabalhar com objetos inputstream e outputstream no mapeamento de operações de PI e não como mostrado acima. Este código é para um programa executável independente no eclipse ou em qualquer outro editor Java, mas não no PI.

Espero que isso te ajude!

Ambrish

pastedImage_0.png
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

ao criar o projeto, use Java 1.5 e funcionará.

Saudações,

Loordh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá a todos,

Modifiquei o código desta forma, mas ao mapear operacionalmente estava recebendo um erro de versão. Estava usando a versão Jdk 6.1 e essa foi a razão desse erro?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

public class Xml_convert extends AbstractTransformation {

public boolean generateXML(InputStream inputStream, OutputStream outputStream) {

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.newDocument();

Element catalogElement = document.createElement("document");

document.appendChild(catalogElement);

InputStream input = inputStream;

HSSFWorkbook workbook = new HSSFWorkbook(input);

HSSFSheet spreadsheet = workbook.getSheetAt(0);

System.out.println("Número de linhas =" + spreadsheet.getLastRowNum());

for (int i = 1; i <= spreadsheet.getLastRowNum(); i++) {

HSSFRow row = spreadsheet.getRow(i);

Element journalElement = document.createElement("Element");

catalogElement.appendChild(journalElement);

Element nameElement = document.createElement("name");

journalElement.appendChild(nameElement);

nameElement.appendChild(document.createTextNode(row.getCell((short) 0).toString()));

Element idElement = document.createElement("id");

journalElement.appendChild(idElement);

idElement.appendChild(document.createTextNode(row.getCell((short) 1).toString()));

Element desgElement = document.createElement("desg");

journalElement.appendChild(desgElement);

desgElement.appendChild(document.createTextNode(row.getCell((short) 2).toString()));

}

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer = tFactory.newTransformer();

DOMSource source = new DOMSource(document);

StreamResult result = new StreamResult(outputStream);

transformer.transform(source, result);

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

Document doc = db.parse("");

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

public void gettingText(Document doc) {

XMl xml = new XMl();

Element root = doc.getDocumentElement();

NodeList nodeList = doc.getElementsByTagName("Element");

for (int i = 0; i < nodeList.getLength(); i++) {

Node node = nodeList.item(i);

if (node.getNodeType() == Node.ELEMENT_NODE) {

Element element = (Element) node;

NodeList nodelist = element.getElementsByTagName("name");

Element element1 = (Element) nodelist.item(0);

NodeList name = element1.getChildNodes();

System.out.println("Nome : " + (name.item(0)).getNodeValue());

xml.setName((name.item(0)).getNodeValue());

Element element2 = (Element) node;

NodeList nodelist1 = element2.getElementsByTagName("id");

Element element3 = (Element) nodelist1.item(0);

NodeList id = element3.getChildNodes();

System.out.println("id : " + (id.item(0)).getNodeValue());

xml.setId((id.item(0)).getNodeValue());

Element element4 = (Element) node;

NodeList nodelist2 = element4.getElementsByTagName("desg");

Element element5 = (Element) nodelist2.item(0);

NodeList desg = element5.getChildNodes();

System.out.println("desg:" + (desg.item(0)).getNodeValue());

xml.setDesg((desg.item(0)).getNodeValue());

System.out.println("Nome =" + xml.getName());

System.out.println("Id =" + xml.getId());

}

}

}

public static void main(String[] argv) throws ParserConfigurationException, SAXException, IOException {

Xml_convert convert = new Xml_convert();

FileInputStream input = new FileInputStream("C:/test.xls");

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

O final prematuro do arquivo normalmente ocorre se você não fechar ou completar corretamente as tags XML. Por favor, verifique seu código e veja se a saída gerada não contém erros de sintaxe XML. Também verifique se há algum problema com os espaços de nomes.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?