groovy.xml.XmlUtil.serialize如何添加xsi:nil =“true”

时间:2018-01-31 15:32:55

标签: groovy

groovy.xml.XmlUtil.serialize方法是否可以将xsi:nil="true"命名空间添加到空节点?我有一个应用程序,我使用XmlUtil.serialize实用程序将xml写入文件,但它不会自动为空节点放置xsi:nil="true"命名空间。

The XmlUtil.serialize method condenses nodes by taking null nodes like 
<n:test></n:test> and converting it to <n:test/> but I need it to insert
the null namespace like this <n:test xsi:nil="true"/>

是否可以使用groovy.xml.XmlUtil.serialize方法,或者可能还有其他方法。我需要在构造xml有效负载之后执行此操作,因为它使用StringBuilder来构建xml数据。

Java / Groovy中是否有办法通过类似于Microsoft的XSL预处理器的预处理器运行xml字符串,并使用以下xml模板。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="@* | node()">
    <xsl:copy>            
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="*[not(text())]">
    <xsl:copy>
        <xsl:attribute name="xsi:nil">true</xsl:attribute>
    </xsl:copy>
</xsl:template>
</xsl:stylesheet>

0 个答案:

没有答案