Estou encalhado em 2 exercicios da faculdade e um deles é esse, ja passei a madrugrada em claro tentando encontrar uma soluçao mas sem sucesso.
Essa parte não consigo resolver : Inserir o atributo Autor na aplicação Consulta_Disponibilidade, caracterizando mais de um dado encapsulado pelo objeto Disponibilidade.
package pacote_DAO;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import pacote_biblioteca.Disponibilidade_Livro;
public class Disponibilidade_Livro_XML implements Disponibilidade_Livro{
public Disponibilidade consultarDisponibilidade(int cod_disp){
String Livro = "";
String Autor = "";
try{
File arquivo = new File("Livros_Disponiveis.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder( );
Document doc = db.parse(arquivo);
doc.getDocumentElement( ).normalize( );
NodeList nodelist = doc.getElementsByTagName("disponibilidade");
for (int s =0; s < nodelist.getLength( );s++){
Node firstNode = nodelist.item(s);
if (firstNode.getNodeType( )== Node.ELEMENT_NODE){
Element firstElement = (Element)firstNode;
NodeList co_ElementList = firstElement.getElementsByTagName("cod_disp");
Element co_Element = (Element)co_ElementList.item(0);
NodeList co = co_Element.getChildNodes( );
String co_DisponibilidadeArquivoXML = (String) ((Node)co.item(0)).getNodeValue();
try{
if(cod_disp == Integer.parseInt(co_DisponibilidadeArquivoXML)){
NodeList NameElementList = firstElement.getElementsByTagName("Livro");
Element NameElement = (Element)NameElementList.item(0);
NodeList name= NameElement.getChildNodes( );
Livro = ((Node)name.item(0)).getNodeValue( );
return new Disponibilidade(Livro , Autor);
}
}catch(Exception e){
System.out.println("Erro >>"+ co_DisponibilidadeArquivoXML+ "<<"+ e.toString());}
}
}
}catch(Exception e){System.out.println("erro 2");
e.printStackTrace();
}
return null;
}
public void inserir_Disponibilidade(){}
public void atualizarDisponibilidade(){}
public void excluirDisponibilidade(){}
}
package pacote_DAO;
public class Disponibilidade {
public String Livro = "";
public String Autor = "";
public Disponibilidade (String Livro, String Autor){
this.Livro = Livro;
this.Autor = Autor;
}
}
package pacote_DAO;
import pacote_biblioteca.Disponibilidade_Livro;
public class Consulta_Disponibilidade {
public static void main(String args[]){
System.out.println("Consulta Livros");
Disponibilidade_Livro objeto_1 = null;
Disponibilidade objeto_2 = null;
objeto_1 = new Disponibilidade_Livro_XML();
objeto_2 = objeto_1.consultarDisponibilidade(1);
if (objeto_2 != null){
System.out.println("\nLivros Disponiveis - Fonte XML");
System.out.println(objeto_2.Livro+" "+objeto_2.Autor);
}
else
System.out.println("\nLivro não Encontrado");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<root>
<disponibilidade id="1">
<cod_disp>1</cod_disp>
<Livro>Livro 123</Livro>
<Autor>Autor 1</Autor>
</disponibilidade>
<disponibilidade id="2">
<cod_disp>1</cod_disp>
<Livro>Livro 456</Livro>
<Autor>Autor 2</Autor>
</disponibilidade>
<disponibilidade id="3">
<cod_disp>1</cod_disp>
<Livro>Livro 789</Livro>
<Autor>Autor 3</Autor>
</disponibilidade>
</root>
Tentei algumas alteraçoes mas ele sempre me exibe o nome do livro.
Caso alguem possa me dar uma luz, ja sou grato.