Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 转换使用前一行中的值,但不应使用_Xml_Xslt - Fatal编程技术网

Xml 转换使用前一行中的值,但不应使用

Xml 转换使用前一行中的值,但不应使用,xml,xslt,Xml,Xslt,我有一个简单的XML价目表: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="example.xsl" type="text/xsl"?> <price-items> <item><name>item 1</name> <price-b2b vat='no'>10</price-b2b><price-b2c vat=

我有一个简单的XML价目表:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="example.xsl" type="text/xsl"?>
<price-items>
<item><name>item 1</name>   <price-b2b vat='no'>10</price-b2b><price-b2c vat='no'>20</price-b2c></item>
<item><name>item 2</name>   <price-b2b vat='yes'>100</price-b2b><price-b2c vat='yes'>200</price-b2c></item>
<item><name>item 3</name>   <price-b2b vat='no'>1000</price-b2b><price-b2c vat='no'>2000</price-b2c></item>
</price-items>
在涉及计算的第二行和第三行中,它使用第一行(第一项)中的值进行计算,而不是使用实际行中的相应值


为什么呢?如何更正此问题?

当您进行计算时:

<xsl:value-of select="format-number(number(/price-items/item/price-b2b * $vat), '# ###,##')" />

对于其他三种情况也是如此。

Wild guess,您使用的是
/price items/item/price-b2b
在开始时删除
/
,因为它告诉XSLT从根开始向下移动,因此您失去了回复的
foreach
位置naks,我已经重写了它,它可以正常工作。我使用完整路径“/price-items/item/price-b2b”的原因可能是(是的,我尝试了太多版本,以至于丢失了一个ilttel…),因为我只使用了“price-b2b”就得到了NaN。最初,我没有使用数字格式,但如果没有它(“price-b2b*$vat”例如),我也得到了NaN,而仅仅使用“number(price-b2b*$vat)”也没有帮助。。。eelements项的内容始终是一个数字(或一系列易于转换为数字的数字)…无论如何,它现在似乎对我有效,因此再次感谢您的帮助和解释。
b2b excl. VAT: 10 unit(s)
b2b s vat 12,1 unit(s)
b2c excl. VAT: 20 unit(s)
b2c incl. VAT: 24,2 unit(s)

b2b excl. VAT: 8,26 unit(s)
b2b incl. VAT: 100 unit(s)
b2c price excl. VAT: 16,53 unit(s)
b2c price incl. VAT: 200 unit(s)

b2b excl. VAT: 1000 unit(s)
b2b s vat 12,1 unit(s)
b2c excl. VAT: 2000 unit(s)
b2c incl. VAT: 24,2 unit(s)
<xsl:value-of select="format-number(number(/price-items/item/price-b2b * $vat), '# ###,##')" />
<xsl:value-of select="format-number(number(. * $vat), '# ###,##')" />