Regex com XML?

xpathPurchase não é um element, é?

ora que ele chega

Element purchase = (Element) xpathPurchase.selectNodes("//TVodPurchase[@id=’"+id+"’]");

gera essa exceção

então pode ser o elemento, é que o id é o mesmo valor do elemento

mais eu tirei

ai fico assim

new Dom4jXPath("//vodusage:TVodPurchase);

Cara, é por aí. Sem o XML de base, fica difícil de rodar/testar. Não dá para ficar chutando no vazio.

Você usa ou xpath.selectNodes(doc) ou doc.selectNodes("//xyz");

O resto vai ser em volta disso.

entendii…,… eu axo que pode ser a sintaxe errada porque eu coloquei um valor real

Element purchase = (Element) doc.selectNodes("//TVodPurchase[@id=‘4504a142-d39c-4af4-8314-62b90feac165’]");

e mesmo assim deu o mesmo erro [@id=‘valor’]

é assim mesmo

org.jaxen.XPath xpathPurchase = new Dom4jXPath("//vodusage:ReferencedEntitlement[@id='5eb81fd1-985a-4a18-85c1-fc8c0c4dd989']"); xpathPurchase.setNamespaceContext(new SimpleNamespaceContext(map)); System.out.println(xpathPurchase.selectNodes(doc));

Funciona.

mano la dentro quando eu passo da vai nem com reza rsrs

	Map<String, String> map = new HashMap<String, String>();
		map.put("vodusage", "urn:eventis:vodusage:2.0");
		org.jaxen.XPath xpathCustomer = new Dom4jXPath(
				"//vodusage:ReferencedEntitlement/vodusage:CustomerId");
		xpathCustomer.setNamespaceContext(new SimpleNamespaceContext(map));


		Map<String, String> mapPurchase = new HashMap<String, String>();
		mapPurchase .put("vodusage", "urn:eventis:vodusage:2.0");
		org.jaxen.XPath xpathPurchase = new Dom4jXPath("//vodusage:TVodPurchase/vodusage:EntitlementId");
		xpathPurchase.setNamespaceContext(new SimpleNamespaceContext(mapPurchase));

	      
		
		List<Element> nodesCustomer = xpathCustomer.selectNodes(doc);
		List<Element> nodesPurchase =  xpathPurchase.selectNodes(doc);

		for (Element noh : nodesCustomer) {
			String texto = noh.getTextTrim();
			if (texto != null && texto.endsWith("038")) {
				Element pai = noh.getParent();
				String id = pai.valueOf("@id");
				noh.getParent().detach();
				for (Element purchase : nodesPurchase ) {
					String idPurchase = purchase.getTextTrim();
					if (id != null && id.equals(idPurchase))
					purchase.getParent().detach();
				}
			}
		}

ai fiz assim e funciono eu acho rsrs

Por enquanto deu certo rsrs qualquer coisa do um alo aqui kkkkkkk zueraa rsrs

Cara o seguinte, muito obrigado valew mesmo…ajudo muitoooo
Comunidade do Guj mtu boaa pra resolver as coisa.

Abração

rsrs era obvio que não ia dar tudo certo rsrs o original é assim

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

ai zua todo os acentos

Consegui, era o enconding da String , mudei o enconding do eclipse ,e tudo deu certo.,…

Obrigado

ainda o enconding… quando exporto o jar, não funciona

O que não funciona? Você tá testando o quê contra o quê?

Você pode controlar o encoding de entrada e saída do seu *putStream. Também pode depender do leitor que você está abrindo o XML.

RESOLVI fazendo a transformação antes de gravar


private void gravar(byte[] bytes, String caminhoDestino) throws Exception {

		ByteArrayInputStream bstrean = new ByteArrayInputStream(bytes);
		Reader input = new InputStreamReader(bstrean, decoder("Cp1252"));
		Writer output = new OutputStreamWriter(new FileOutputStream(
				caminhoDestino), encoder("UTF-8"));
		char[] buffer = new char[4096];
		int length;

		while ((length = input.read(buffer)) != -1) {
			output.write(buffer, 0, length);
		}

		output.flush();
		output.close();

	}

	private static CharsetDecoder decoder(String encoding) {
		return Charset.forName(encoding).newDecoder()
				.onMalformedInput(CodingErrorAction.REPORT)
				.onUnmappableCharacter(CodingErrorAction.REPORT);
	}

	private static CharsetEncoder encoder(String encoding) {
		return Charset.forName(encoding).newEncoder()
				.onMalformedInput(CodingErrorAction.REPORT)
				.onUnmappableCharacter(CodingErrorAction.REPORT);
	}