J'ai cherché dans SO, mais je n'ai rien trouvé qui résout mon problème. J'espère que quelqu'un peut m'aider.Supprimer l'espace de noms de l'étiquette
Je construis un fichier XML et je dois supprimer l'espace de noms xmlns
.
C'est mon code
Document xmlDocument = new Document();
Namespace ns1 = Namespace.getNamespace("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03");
Namespace ns2 = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
Element root = new Element("Document", ns1);
root.addNamespaceDeclaration(ns2);
xmlDocument.setRootElement(root);
Element CstmrCdtTrfInitn = new Element("CstmrCdtTrfInitn");
root.addContent(CstmrCdtTrfInitn);
PrintDocumentHandler pdh = new PrintDocumentHandler();
pdh.setXmlDocument(xmlDocument);
request.getSession(false).setAttribute("pdh", pdh);
ByteArrayOutputStream sos = new ByteArrayOutputStream();
XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
Format format = outputter.getFormat();
format.setEncoding(SOPConstants.ENCODING_SCHEMA);
outputter.setFormat(format);
outputter.output(root, sos);
sos.flush();
return sos;
Et c'est le XML-fichier
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
<CstmrCdtTrfInitn xmlns=""/>
</Document>
J'ai créé pour supprimer l'espace de noms xmlns
de la balise CstmrCdtTrfInitn
.
Merci beaucoup à l'avance.
Sans l'urne 'xmlns = ""' il serait dans l'espace de noms ': iso: std: ISO: 20022: tech: xsd: pain.001.001.03'. Est-ce que c'est ce que tu veux? – Henry
Non, pas l'espace de noms dans la balise Document. Je dois supprimer seulement l'espace de noms de la balise CstmrCdtTrfInitn. – user2960190
Toujours pas clair. Comme le document est actuellement, 'CstmrCdtTrfInitn' n'a pas d'espace de noms. Si vous supprimez l'attribut 'xmlns =" "', cet élément sera dans l'espace de noms 'urn: iso: std: iso: 20022: tech: xsd: pain.001.001.03' qui est hérité de l'élément racine. – Henry