Я загрузил файл XMLType из Oracle DB в приложение Java. Я подготовил класс для обработки операций на файле XML, который выглядит следующим образом:Изменение файла XMLType Java
public class XMLDoc {
private OraclePreparedStatement stmt;
private ResultSet rset;
private OracleResultSet orset;
private Document xml_column;
private XMLType poxml;
public XMLDoc(Connection con, String Query) throws Exception {
setStmt((OraclePreparedStatement)
con.prepareStatement(Query));
setRset(getStmt().executeQuery());
setOrset((OracleResultSet) rset);
}}
И в основной программе подключиться к файлу XML базы данных и читать в xml_column:
Connection con = DriverManager.getConnection(host, username, password);
tables[5] = (new XMLDoc(con, "SELECT p.PENALITESXML FROM PENALITES p WHERE id_order='"+data.getIdOrder()+"'"));
while(tables[5].getOrset().next()) {
tables[5].setPoxml(XMLType.createXML(tables[5].getOrset().getOPAQUE("PENALITESXML")));
tables[5].setXml_column((Document)tables[5].getPoxml().getDocument());
Element element = tables[5].getXml_column().getDocumentElement();}
Теперь, я бы например, для изменения загруженного документа XML, поэтому я выполняю:
tables[5].getXml_column().getElementsByTagName("ISPAID").item(0).getChildNodes().item(0).setNodeValue("Y");
Но документ не обновляется. Что я делаю не так?
Это, как выглядит файл XML, как:
<PENALITES ID_ORDER="50000">
<PENALTY_AMOUNT>100</PENALTY_AMOUNT>
<ISPAID>N</ISPAID>
</PENALITIES>
Является ли целью изменить XML и обновить базу данных с помощью этих изменений? Если да, зачем вообще использовать Java - просто измените XML в базе данных. – MT0
Я знаю, что есть другие способы, такие как XPath или XQuery, но мне нужно изменить его внутри приложения с помощью DOM. – monterinio