【问题标题】:How can I use XPath to create a new xml content?如何使用 XPath 创建新的 xml 内容?
【发布时间】:2015-05-19 09:33:00
【问题描述】:

我有以下问题。在 Java 应用程序中,我必须使用 XPath 创建一个新的 XML 内容(我一直使用它来解析 XML 文件并获取其标签内的值,我也可以使用它来构建新的 XML 内容吗?) .

所以我的最终结果(必须保存在数据库 CLOB 字段中,而不是 .xml 文件中,但我认为这并不重要)必须是这样的:

<?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>

所以我需要做的就是以编程方式添加节点和这些节点的内容(内容是从模型对象中获取的)。

我可以使用 XPath 吗?怎么样?

Tnx

【问题讨论】:

  • 最好使用 DOM 解析器来维护 XML 文档。您可以使用 Jaxb,它可以轻松创建对象模型表示
  • @KennethClark 不,这不是我需要的。我不需要创建模型对象的 XML 表示。我需要创建一个特定的 XML,它使用模型对象的几个字段和其他地方获取的一些其他信息
  • @KennethClark 您的声明“最好使用 DOM 解析器维护 XML 文档”在绝对意义上是完全错误的。大多数时候,XSLT 或 XQuery (Update) 的性能要好得多,需要的主内存少得多,而且更容易维护。当然,DOM 更胜一筹是有原因或场景的,但这绝不是一般的建议。

标签: java xml xpath


【解决方案1】:

XPath 是一种用于在 XML 文档中定位节点的 API。它不能创建新节点或操作现有节点。因此,您需要使用 XPath 定位要修改的节点,然后使用找到的节点的 API 进行更改。

但在您的情况下,您从一个空文档开始。查看 JDOM 2 之类的框架,从头开始构建 XML 文档。本教程应该可以帮助您入门:http://www.studytrails.com/java/xml/jdom2/java-xml-jdom2-example-usage.jsp

【讨论】:

    【解决方案2】:

    你不能。 XPath 是一种匹配技术,而不是一种内容创建技术。您可能正在寻找 XSLT?

    【讨论】:

    • mmm 我不太喜欢这个话题,但是...XSLT 不仅仅用于将样式表应用于 XML 文档吗?我也可以使用它从头开始构建新的 XML 文档吗? TNX
    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 2019-08-12
    • 2011-07-19
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2011-11-09
    相关资源
    最近更新 更多