我有一个xslt文件,使用阿帕奇-福普将xml文件转换为pdf。但是我的xslt中没有关于命名空间的所有信息。这取决于 xml。我可以在java中分析xml文档并从xml获取所有命名空间。但是我不知道如何将这个命名空间从java传递到我的xslt文件,以及接下来如何在标签中声明它。可能吗?<xsl:stylesheet>
我无法粘贴我的原始 xslt 和 xml,因为它有敏感数据,但我准备了示例文件来显示我的问题:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:OtherCompany xmlns:ns8="http://www.company.com/schema/SF/definition/type/test" xmlns:ns0="http://www.company.com/schema/SF/definition/type/a" xmlns:ns7="http://www.company.com/schema/SF/definition/type/b" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns0:Header>
<ns8:From>2018-01-01</ns8:From>
<ns8:To>2018-12-31</ns8:To>
<ns8:CheckDate>2019-03-28</ns8:CheckDate>
<ns7:Code sysCode="1">Report</ns7:Code>
<ns7:Type>1</ns7:Type>
</ns0:Header>
<ns0:Changes>
<ns7:I>
<ns8:AmountA>1499142.61</ns8:AmountA>
<ns8:AmountB>54979.16</ns8:AmountB>
</ns7:I>
<ns7:II>
<ns8:AmountA>3398983.19</ns8:AmountA>
<ns8:AmountB>1499142.61</ns8:AmountB>
</ns7:II>
<ns7:III>
<ns8:AmountA>3398983.19</ns8:AmountA>
<ns8:AmountB>1499142.61</ns8:AmountB>
</ns7:III>
</ns0:Changes>
</ns0:OtherCompany>
如何从 Java 传递 xmlPath前缀并在我的 xslt 中使用它?我想将示例字符串作为 xml 路径前缀
“ns0:其他公司/ns0:更改”
第二个问题是我的命名空间,pathPrefix可以不同,但本地名称总是一样的,例如它可以是:
"ns0:OtherCompany/ns0:Changes"
"ns10:OtherCompany/ns15:Changes"
"companyType:OtherCompany/companyChanges:Changes"
或更多其他选项。当我有 xslt 时,我必须在示例 ns0、ns10、公司类型等中声明标记。如果我不声明它,我就会出错。但我不知道我的xml中声明了什么命名空间。我该如何将其传递给 xslt?<xsl:stylesheet>
示例 i 通行证
xmlPath前缀: “ns10:其他公司/ns15:Changes”
和命名空间:ns10 和 ns15
但我不知道如何达到它。
慕慕森
相关分类