0

xslt を使用して edifact ファイルを UBL ファイルに変換する BizTalk のプロジェクトで作業しています。edifact ファイルには ###.0 の価格値が含まれており、機能しません。format-number を使用して ###.00 に変更したい。しかし、私はそれを機能させることはできません。

これは私がこれまでに作ったものです:

<cbc:Value>
    <xsl:variable name="SumOfNodes" select="edi:PRI/edi:C509/C50902"/>
    <xsl:value-of select="format-number($SumOfNodes, '0.00')"/>
</cbc:Value>

私はこのスタイルシートを使用しています:

<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:msxsl="urn:schemas-microsoft-com:xslt"
                xmlns:edi="http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006/MEDIAMARKT"
                xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Order-2"
                xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
                xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
                exclude-result-prefixes="msxsl edi">

これを解決する方法についてのアイデアはありますか??

4

1 に答える 1

0

これは、XSLT で名前空間が宣言されていないことが原因である可能性があります。XSLT で名前空間が正しく宣言されているかどうかを確認してください。XML コーディングを含む完全な XSLT コーディングを提示しない限り、解決策を提供することはできません。ただし、以下のサンプル XML および XSLT と出力を参照してください。

XSLT:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="chapter">
<Value>
    <xsl:variable name="num" select="number"/>
    <xsl:value-of select="format-number($num,'00.00')"/>
</Value>
</xsl:template>
</xsl:stylesheet>

サンプル XML

<?xml version="1.0"?>
<chapter>
<number>45</number>
</chapter>

出力

<?xml version='1.0' ?>
<Value>45.00</Value>
于 2013-07-05T11:57:01.013 に答える