Bom dia pessol, estou aqui tentando realizar a leitura de um XML com o xpath mas estou enfrentando um problema… segue a descrição :
O XML :
<Schema name="ProcessoObjetoParcelaCube" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cube.xsd">
<Cube name="OBJ_PARCELA_CUBE">
<Table name="D_PROCESSO_OBJETO_PARCELA" >
<SQL dialect="mssql">
ID_PROCESSO_OBJETO_PARCELA IN (
SELECT D_PROCESSO_OBJETO_PARCELA.ID_PROCESSO_OBJETO_PARCELA FROM D_PROCESSO_OBJETO_PARCELA
INNER JOIN D_PROCESSO_OBJETO ON (D_PROCESSO_OBJETO_PARCELA.ID_PROCESSO_OBJETO = D_PROCESSO_OBJETO.ID_PROCESSO_OBJETO)
INNER JOIN M_PROCESSO ON (D_PROCESSO_OBJETO.ID_PROCESSO = M_PROCESSO.ID_PROCESSO) WHERE (1=1))
</SQL>
</Table> ( ... )
Estou realizando a consulta desta forma:
xpath.evaluate("/Schema/Cube/Table", cubeDoc, XPathConstants.NODESET);
Com esta consulta ele me retorna:
ID_PROCESSO_OBJETO_PARCELA IN (
SELECT D_PROCESSO_OBJETO_PARCELA.ID_PROCESSO_OBJETO_PARCELA FROM D_PROCESSO_OBJETO_PARCELA
INNER JOIN D_PROCESSO_OBJETO ON (D_PROCESSO_OBJETO_PARCELA.ID_PROCESSO_OBJETO = D_PROCESSO_OBJETO.ID_PROCESSO_OBJETO)
INNER JOIN M_PROCESSO ON (D_PROCESSO_OBJETO.ID_PROCESSO = M_PROCESSO.ID_PROCESSO) WHERE (1=1))
Sendo que eu acho que deveria retornar inclusive: … , certo ? já que a consulta é: “/Schema/Cube/Table” e não “/Schema/Cube/Table/SQL”
E eu sei que ele retorna isto, através do debugg, pois se eu uso o getNodeValue, ele não me retorna nada, sendo que está ali quando eu coloco a seta em cima do objeto no debugg …
NodeList ndL = (NodeList) xpath.evaluate("/Schema/Cube/Table", cubeDoc, XPathConstants.NODESET);
String v = ndL.item(0).getNodeValue();