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
如果条件为true,则选择的xslt副本_Xslt_If Statement - Fatal编程技术网

如果条件为true,则选择的xslt副本

如果条件为true,则选择的xslt副本,xslt,if-statement,Xslt,If Statement,我设置了以下XML: <?xml version="1.0" encoding="utf-16"?> <form> <answers> <moz_generiek>Hello World</moz_generiek> <moz_opdracht>Mission 1</moz_opdracht> <moz_opdracht2>Mission 2</moz_opdrach

我设置了以下XML:

<?xml version="1.0" encoding="utf-16"?>
<form>
  <answers>
    <moz_generiek>Hello World</moz_generiek>
    <moz_opdracht>Mission 1</moz_opdracht>
    <moz_opdracht2>Mission 2</moz_opdracht2>
    <moz_opdracht3>Mission 3</moz_opdracht3>
    <moz_opdracht4>Mission 4</moz_opdracht4>
    <moz_opdracht5>Mission 5</moz_opdracht5>
    <moz_opdracht6>Mission 6</moz_opdracht6>
    <moz_opdracht7>Mission 7</moz_opdracht7>
    <moz_opdracht8>Mission 8</moz_opdracht8>
    <moz_opdracht9>Mission 9</moz_opdracht9>
    <set_kenmerk_api>
      <moz_opdracht id="1">SubMission1</moz_opdracht>
      <moz_opdracht id="2">SubMission2</moz_opdracht>
      <moz_opdracht id="3">SubMission3</moz_opdracht>
      <moz_opdracht id="4">SubMission4</moz_opdracht>
      <moz_opdracht id="5">SubMission5</moz_opdracht>
    </set_kenmerk_api>
  </answers>
</form>

你好,世界
任务1
任务2
任务3
任务4
任务5
任务6
任务7
任务8
任务9
提交1
提交2
提交3
提交4
提交5
我使用以下XSLT样式表:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

      <xsl:template match="/">
        <moz_koppelverzoek>
          <moz_koppelverzoekreferentie><![CDATA[Important]]></moz_koppelverzoekreferentie>
          <xsl:apply-templates select="/form/answers/moz_generiek"/>
          <moz_opdrachten>
          <xsl:apply-templates select="/form/answers/moz_opdracht"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht2"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht3"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht4"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht5"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht6"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht7"/>
          <xsl:apply-templates select="/form/answers/set_kenmerk_api/moz_opdracht"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht8"/>
          <xsl:apply-templates select="/form/answers/moz_opdracht9"/>
          </moz_opdrachten>
        </moz_koppelverzoek>
      </xsl:template>

      <xsl:template match="moz_generiek">
        <xsl:element name="moz_generiek">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

      <xsl:template match="moz_opdracht">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht2">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht3">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht4">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht5">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht6">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht7">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

      <xsl:template match="moz_opdracht">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht8">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>

          <xsl:template match="moz_opdracht9">
        <xsl:element name="moz_opdracht">
      <xsl:copy-of select="node()"/>
    </xsl:element>
      </xsl:template>  

</xsl:stylesheet>

要创建以下结果:

<moz_koppelverzoek>
    <moz_koppelverzoekreferentie>Important</moz_koppelverzoekreferentie>
    <moz_generiek>Hello World</moz_generiek>
    <moz_opdrachten>
        <moz_opdracht>Mission 1</moz_opdracht>
        <moz_opdracht>Mission 2</moz_opdracht>
        <moz_opdracht>Mission 3</moz_opdracht>
        <moz_opdracht>Mission 4</moz_opdracht>
        <moz_opdracht>Mission 5</moz_opdracht>
        <moz_opdracht>Mission 6</moz_opdracht>
        <moz_opdracht>Mission 7</moz_opdracht>
        <moz_opdracht>SubMission1</moz_opdracht>
        <moz_opdracht>SubMission2</moz_opdracht>
        <moz_opdracht>SubMission3</moz_opdracht>
        <moz_opdracht>SubMission4</moz_opdracht>
        <moz_opdracht>SubMission5</moz_opdracht>
        <moz_opdracht>Mission 8</moz_opdracht>
        <moz_opdracht>Mission 9</moz_opdracht>
    </moz_opdrachten>
</moz_koppelverzoek>

重要的
你好,世界
任务1
任务2
任务3
任务4
任务5
任务6
任务7
提交1
提交2
提交3
提交4
提交5
任务8
任务9
我现在需要的是,如果任务8节点是原始XML,我想重新复制任务9下的所有提交

有时行:
Mission 8
和9在原始XML中,有时不是

如果
包含在带有IF语句的XML中,如何获得以下结果XML

<moz_koppelverzoek>
    <moz_koppelverzoekreferentie>Important</moz_koppelverzoekreferentie>
    <moz_generiek>Hello World</moz_generiek>
    <moz_opdrachten>
        <moz_opdracht>Mission 1</moz_opdracht>
        <moz_opdracht>Mission 2</moz_opdracht>
        <moz_opdracht>Mission 3</moz_opdracht>
        <moz_opdracht>Mission 4</moz_opdracht>
        <moz_opdracht>Mission 5</moz_opdracht>
        <moz_opdracht>Mission 6</moz_opdracht>
        <moz_opdracht>Mission 7</moz_opdracht>
        <moz_opdracht>SubMission1</moz_opdracht>
        <moz_opdracht>SubMission2</moz_opdracht>
        <moz_opdracht>SubMission3</moz_opdracht>
        <moz_opdracht>SubMission4</moz_opdracht>
        <moz_opdracht>SubMission5</moz_opdracht>
        <moz_opdracht>Mission 8</moz_opdracht>
        <moz_opdracht>Mission 9</moz_opdracht>
        <moz_opdracht>SubMission1</moz_opdracht>
        <moz_opdracht>SubMission2</moz_opdracht>
        <moz_opdracht>SubMission3</moz_opdracht>
        <moz_opdracht>SubMission4</moz_opdracht>
        <moz_opdracht>SubMission5</moz_opdracht>
    </moz_opdrachten>
</moz_koppelverzoek>

重要的
你好,世界
任务1
任务2
任务3
任务4
任务5
任务6
任务7
提交1
提交2
提交3
提交4
提交5
任务8
任务9
提交1
提交2
提交3
提交4
提交5
我现在需要的是,我想重新复制下面的所有提交 任务9,如果任务8节点位于原始XML中

使用

<xsl:apply-templates select="/form/answers[moz_opdracht8]/moz_opdracht9"/> 

我现在需要的是,我想重新复制下面的所有提交 任务9,如果任务8节点位于原始XML中

使用

<xsl:apply-templates select="/form/answers[moz_opdracht8]/moz_opdracht9"/> 

您也可以对整个转换使用不同的方法:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="form">
    <moz_koppelverzoek>
      <moz_koppelverzoekreferentie>Important</moz_koppelverzoekreferentie>
      <xsl:apply-templates select="answers/moz_generiek"/>
      <moz_opdrachten>
        <xsl:apply-templates select="answers/*[not(name()='moz_generiek')]"/>  
      </moz_opdrachten>      
    </moz_koppelverzoek>
  </xsl:template>

  <xsl:template match="answers">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="set_kenmerk_api"/>

  <xsl:template match="*[name() = 'moz_opdracht9' and /*/*/moz_opdracht8]" priority="1">
    <xsl:call-template name="mo"/>
    <xsl:apply-templates select="../set_kenmerk_api/moz_opdracht"/>
  </xsl:template>

  <xsl:template match="*[name() = 'moz_opdracht7']" priority="1">
    <xsl:call-template name="mo"/>
    <xsl:apply-templates select="../set_kenmerk_api/moz_opdracht"/>
  </xsl:template>

  <xsl:template match="*[starts-with(name(),'moz_opdracht')]" name="mo">
    <moz_opdracht>
      <xsl:apply-templates/>
    </moz_opdracht>
  </xsl:template> 

</xsl:stylesheet>

重要的

在我看来,这简化了样式表。

您也可以对整个转换使用不同的方法:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="form">
    <moz_koppelverzoek>
      <moz_koppelverzoekreferentie>Important</moz_koppelverzoekreferentie>
      <xsl:apply-templates select="answers/moz_generiek"/>
      <moz_opdrachten>
        <xsl:apply-templates select="answers/*[not(name()='moz_generiek')]"/>  
      </moz_opdrachten>      
    </moz_koppelverzoek>
  </xsl:template>

  <xsl:template match="answers">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="set_kenmerk_api"/>

  <xsl:template match="*[name() = 'moz_opdracht9' and /*/*/moz_opdracht8]" priority="1">
    <xsl:call-template name="mo"/>
    <xsl:apply-templates select="../set_kenmerk_api/moz_opdracht"/>
  </xsl:template>

  <xsl:template match="*[name() = 'moz_opdracht7']" priority="1">
    <xsl:call-template name="mo"/>
    <xsl:apply-templates select="../set_kenmerk_api/moz_opdracht"/>
  </xsl:template>

  <xsl:template match="*[starts-with(name(),'moz_opdracht')]" name="mo">
    <moz_opdracht>
      <xsl:apply-templates/>
    </moz_opdracht>
  </xsl:template> 

</xsl:stylesheet>

重要的
在我看来,这简化了样式表