AndreaNobili
AndreaNobili

Reputation: 42997

How can I use XPath to create a new xml content?

I have the following problem. Into a Java application I have to create a new XML content using XPath (I always used it to parse XML files and obtain values inside its tag, can I use it also for build a new XML content?).

So my final result (that have to be saved on a database CLOB field, not on an .xml file, but I think that this is not important) have to be something like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
    <Messaggio>
        <Intestazione>
            <Da>06655971007</Da>
            <A>01392380547</A>
            <id>69934</id>
            <idEnel/>
            <DataInvio>2015-05-06</DataInvio>
            <DataRicezione/>
            <InRisposta/>
            <TipoDoc>Ricevuta</TipoDoc>
        </Intestazione>

        <Documenti>
            <Ricevuta>
                <Testata>
                    <Documento>
                        <Tipo>380</Tipo>
                        <NumeroDocumento>ff</NumeroDocumento>
                        <Stato>KO</Stato>
                        <Data>2014-03-10</Data>
                    </Documento>
                </Testata>

                <Dettaglio>
                    <Messaggio>
                        <Codice>000</Codice>
                        <Descrizione>Documento NON Conforme / NON dovuto</Descrizione>
                    </Messaggio>
                </Dettaglio>
            </Ricevuta>
        </Documenti>
    </Messaggio>

So what I need to do is to programmatically add the nodes and the content of these nodes (the content is obtained from a model object).

Can I do it using XPath? How?

Tnx

Upvotes: 0

Views: 115

Answers (2)

user207421
user207421

Reputation: 310980

You can't. XPath is a matching technology, not a content creation technology. Possibly you are looking for XSLT?

Upvotes: 1

Aaron Digulla
Aaron Digulla

Reputation: 328754

XPath is an API to locate nodes in a XML document. It can't create new nodes or manipulate existing nodes. So what you need is to locate the nodes to modify using XPath and then use the API of the found nodes to make the changes.

But in your case, you're starting with an empty document. Have a look at frameworks like JDOM 2 to build XML documents from scratch. This tutorial should get you started: http://www.studytrails.com/java/xml/jdom2/java-xml-jdom2-example-usage.jsp

Upvotes: 2

Related Questions