gpt4 book ai didi

java - 如果值为空,则限制 XSLT 中的元素创建

转载 作者:行者123 更新时间:2023-12-01 18:46:04 25 4
gpt4 key购买 nike

当且仅当源 XML 的元素值不为空时,我想在目标 XML 中创建新元素。我可以使用下面的代码来做到这一点。但是,我的问题是我有大约 5k 的字段需要以类似的条件进行包装。我们有更好的方法来处理这个问题吗?

<xsl:if test="edi:po-num"> //wanted to avoid this for each element
<xsl:element name="element">
<xsl:attribute name="name">order_reference_number</xsl:attribute>
<xsl:value-of select="edi:po-num"/>
</xsl:element>
</xsl:if>

要转换的java代码:

Transformer trans = StylesheetCache.newTransformer(xslFilePath);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
trans.transform(source, new StreamResult(outputStream));

最佳答案

您在 XSLT 1.0 中的选择是有限的 - XSLT 1.0 代码往往很冗长。但如果它确实是重复的,那么您可以考虑编写一个元样式表 - 一个 XSLT 样式表,它根据需要执行的操作的一些更高级别的描述生成样式表。

另请注意,如果您使用文字结果元素和属性值模板而不是 xsl:elementxsl:attribute,您的代码将会简洁很多。

关于java - 如果值为空,则限制 XSLT 中的元素创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59839985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com