Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
诱使XSL将具有特定属性的XML元素解释为null或空_Xml_Xslt_Xslt 2.0 - Fatal编程技术网

诱使XSL将具有特定属性的XML元素解释为null或空

诱使XSL将具有特定属性的XML元素解释为null或空,xml,xslt,xslt-2.0,Xml,Xslt,Xslt 2.0,这里是Java8,但我不认为这有什么区别,因为我认为这本质上是一个纯粹的XSL问题 我有一些生成以下XML的代码(作为示例): 问题在于,这会转换空类Buzz变体并产生: <foobar> <account>10016</account> <logId>2000001347</logId> <FLIMFLAM SEGMENT="1"> <HAPP>003</HAPP> &l

这里是Java8,但我不认为这有什么区别,因为我认为这本质上是一个纯粹的XSL问题

我有一些生成以下XML的代码(作为示例):

问题在于,这会转换空类Buzz变体并产生:

<foobar>
  <account>10016</account>
  <logId>2000001347</logId>
  <FLIMFLAM SEGMENT="1">
    <HAPP>003</HAPP>
    <SADD/>
  </FLIMFLAM>
</foobar>

你知道我该怎么做吗?提前谢谢

如评论中所述:

<xsl:if test="buzz[not(@class='null')]">


当至少有一个
buzz
元素没有
class
属性,该属性包含字符串
“null”

时,将返回true。我无法确定问题中的输入和输出是什么。
对您有用吗?谢谢@michael.hor257k(+1),为了澄清,第一个
示例是实际的输入XML,最后一个
XML是所需的输出XML。您的上述建议是否适用于以下两种情况:(1)输入XML上的
buzz
有一个
class
值不是
null
;(2)输入XML上的
buzz
甚至没有
class
属性?再次感谢!我不确定在这些情况下你希望发生什么。为什么不编辑您的问题并明确何时输出
FLIMFLAM
块(或何时不输出)。OK@michael.hor257k请查看我的更新。我只想在其
class
属性为非空或输入XML中根本没有提供其
class
属性时转换
buzz
。我建议的应该适用于您。你可以自己测试一下。
<foobar>
  <account>10016</account>
  <logId>2000001347</logId>
  <FLIMFLAM SEGMENT="1">
    <HAPP>003</HAPP>
    <SADD/>
  </FLIMFLAM>
</foobar>
<foobar>
  <account>10016</account>
  <logId>2000001347</logId>
</foobar>
<xsl:if test="buzz[not(@class='null')]">