Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro de localização

Boa noite,

tentei executar a validação porém não para de exibir o seguinte erro:

"Advertência: A validação foi ativada, mas um org.xml.sax.ErrorHandler não foi definido, provavelmente porque não era necessário. O parser usará um ErrorHandler padrão para imprimir os primeiros 0 erros. Chame o método 'setErrorHandler' para corrigir o problema. Error: URI=file:///C:/Users/Rodrigo/Desktop/WorkSpace2/xml1/xml-com-java/src/vendas.xml Line=2: cvc-elt.1: Não pode localizar a declaração do elemento 'vendas'."

Tentei encontrar a causa do problema em sites mas não consegui, podem me ajudar?

3 respostas

Oi Luiz, por curiosidade, vc chegou a chamar o método setErrorHandler? Pode postar o código para a gente ver?

Boa noite Alberto, não cheguei a chamar ele não,porque no vídeo ele exibiu isso também mas o instrutor acabou nem chamando, segue o código:

public class Sistema {

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory fabrica = DocumentBuilderFactory.newInstance(); fabrica.setValidating(true); fabrica.setNamespaceAware(true); fabrica.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema"); DocumentBuilder builder = fabrica.newDocumentBuilder(); Document document = builder.parse("src/vendas.xml");

Element venda = document.getDocumentElement(); String moeda = venda.getAttribute("moeda"); System.out.println(moeda);

NodeList produtos = document.getElementsByTagName("produto"); for(int i = 0; i < produtos.getLength(); i++){ Element produto = (Element) produtos.item(i); String nome = produto.getElementsByTagName("nome").item(0).getTextContent(); double preco = Double.parseDouble(produto.getElementsByTagName("preco").item(0).getTextContent()); Produto prod = new Produto(nome, preco); System.out.println(prod.toString()); }

}

}

<?xml version="1.0" encoding="UTF-8"?>

Cartão

solução!

Consegui, encontrar o erro.Obrigado.