Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Javascript Mozilla不会解释my xml中包含的HTML_Javascript_Xml_Xslt - Fatal编程技术网

Javascript Mozilla不会解释my xml中包含的HTML

Javascript Mozilla不会解释my xml中包含的HTML,javascript,xml,xslt,Javascript,Xml,Xslt,我英语说得不好,因为我是法国人,如果我犯了错误,我很抱歉。 我有以下代码: <xsl:when test="$PARAM=1"> <xsl:if test="LabelType=0 or LabelType=1 or LabelType=2 or LabelType=3 or LabelType=4 or LabelType=5 or LabelType=9 or LabelType=11 or LabelType=99 or LabelType=98 or L

我英语说得不好,因为我是法国人,如果我犯了错误,我很抱歉。 我有以下代码:

<xsl:when test="$PARAM=1">
        <xsl:if test="LabelType=0 or LabelType=1 or LabelType=2 or LabelType=3 or LabelType=4 or LabelType=5 or LabelType=9 or LabelType=11 or LabelType=99 or LabelType=98 or LabelType=15 or LabelType=14" >
          <div class="sst">
            <table style="font-size: 12px">
              <tr>
                <td>
                  <xsl:choose>
                    <xsl:when test="LabelType=1">
                      <img src="Images/Atcd/stethoscope-icon.png" alt="Consultation" />
                      Consultation
                    </xsl:when>
                    <xsl:when test="LabelType=2">
                      <img src="Images/Atcd/Pen-icon.png" alt="Certificat" />
                      Certificat
                    </xsl:when>
                    <xsl:when test="LabelType=3">
                      <img src="Images/Atcd/Pen-3-icon.png" alt="Demande" />
                      Demande
                    </xsl:when>
                    <xsl:when test="LabelType=4">
                      <img src="Images/Atcd/pill-icon.png" alt="Prescription" />
                      Prescription
                    </xsl:when>
                    <xsl:when test="LabelType=5">
                      <img src="Images/options-icon2.png" alt="Formulaire" />
                      Formulaire
                    </xsl:when>
                    <xsl:when test="LabelType=8">
                      <img src="Images/Atcd/Bio-hazard-icon.png" alt="Vaccin" />
                      Vaccin
                    </xsl:when>
                    <xsl:when test="LabelType=9">
                      <img src="Images/Atcd/Coins-icon.png" alt="Reglement" />
                      Reglement
                    </xsl:when>
                    <xsl:when test="LabelType=10">
                      <img src="Images/Atcd/Paper-Clip-icon.png" alt="Binary" />
                      Binary
                    </xsl:when>
                    <xsl:when test="LabelType=11">
                      <img src="Images/Atcd/BPink.png" alt="Grossesse" />
                      Grossesse
                    </xsl:when>
                    <xsl:when test="LabelType=15">
                      <img src="Images/Atcd/stethoscope-icon.png" alt="Planche" />
                      Planche
                    </xsl:when>
                    <xsl:when test="LabelType=14">
                      <img src="Images/Atcd/stethoscope-icon.png" alt="Audio" />
                      Audio
                    </xsl:when>
                    <xsl:when test="LabelType=99">
                      <img src="Images/Atcd/twitter-bulb-icon.png" alt="Conclusion" />
                      Conclusion
                    </xsl:when>
                    <xsl:when test="LabelType=98">
                      <img src="Images/Atcd/You-make-me-hurt-icon.png" alt="A.T." />
                      A.T.
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:if test="LabelType != 0">
                        <img src="Images/Atcd/Medical-invoice-information-icon.png" alt="Inconnu" />
                        Inconnu <xsl:value-of select="LabelType"/>
                      </xsl:if>
                    </xsl:otherwise>
                  </xsl:choose>
                </td>
              </tr>
            </table>
          </div>
          <xsl:if test="Texte1">
            <xsl:if test="Title1">
              <div class="sst2">
                <xsl:value-of disable-output-escaping="yes"  select="Title1"/>
              </div>
            </xsl:if>
            <div class="stx">
              <xsl:value-of disable-output-escaping="yes"  select="Texte1"/>
            </div>
          </xsl:if>
          <xsl:if test="LabelType!=5 and LabelType!=15 and LabelType!=14">
            <xsl:if test="Texte2">
              <xsl:if test="Title2">
                <div class="sst2">
                  <xsl:value-of disable-output-escaping="yes"  select="Title2"/>
                </div>
              </xsl:if>
              <div class="stx">
                <xsl:value-of disable-output-escaping="yes"  select="Texte2"/>
              </div>
            </xsl:if>
            </xsl:if>
          <xsl:if test="LabelType!=15 and LabelType!=14">
            <xsl:if test="Texte3">
              <xsl:if test="Title3">
                <div class="sst2">
                  <xsl:value-of disable-output-escaping="yes"  select="Title3"/>
                </div>
              </xsl:if>
              <div class="stx">
                <xsl:value-of disable-output-escaping="yes"  select="Texte3"/>
              </div>
            </xsl:if>
            </xsl:if>
          <xsl:if test="LabelType!=15 and LabelType!=14">
            <xsl:if test="Texte4">
              <xsl:if test="Title4">
                <div class="sst2">
                  <xsl:value-of disable-output-escaping="yes"  select="Title4"/>
                </div>
              </xsl:if>
              <div class="stx">
                <xsl:value-of disable-output-escaping="yes"  select="Texte4"/>
              </div>
            </xsl:if>
            </xsl:if>
          <xsl:apply-templates select="Suivis">
            <xsl:with-param name="viewtype" select="$viewtype" />
          </xsl:apply-templates>
        </xsl:if>
      </xsl:when>

咨询
证书
要求
处方
公式
疫苗
雷格伦
二元的
格罗塞斯
普朗彻
音频
结论
A.T。
因科努
这会产生很多“div”,在chrome和IE上效果很好,但在Mozilla中,禁用输出转义不起作用,我有一些HTML代码块没有解释。我尝试了很多方法,但任何方法都有效。在Javascript中,我可以使用InnerHTML将一个div的内容放回另一个div中,但它只对一个div有效,而不是对所有div都有效。我认为这是因为它是一个循环,我不能用同一个id调用多个div。所以你能帮我吗?我从一周起就被封锁了

XML:


4.
divspan style=“font-family:inherit;font-size:inherit”STRONGZOLPIDEM ALMUS 10 mg Cpr pell séc Plq/14/STRONG/span span style=“font-family:inherit;color:#0000ff;font-size:inherit;”(2 boîtes)/span/divdiv style=“font-family:inherit;font-size:inherit”divPrendre-un-compriméau-coucher,吊坠-un-mois/div&;nbsp/div
输出:

<div><span style="font-family: inherit; font-size: inherit"><STRONG>ZOLPIDEM ALMUS 10 mg Cpr pell séc Plq/14</STRONG></span> <span style="font-family: inherit; color:#0000ff; font-size: inherit;">(2 boîtes)</span></div><div style="font-family: inherit; font-size: inherit"><div>Prendre un comprimé au coucher, pendant un mois </div></div><div>&nbsp;</div>
唑吡坦阿美司10 mg心肺复苏胶囊Plq/14(2个疗程)用于治疗心脏病,并悬挂在手机上
我想要的是:

唑吡坦-阿美司10 mg心肺复苏胶囊Plq/14(2次)
依靠
禁用输出转义通常是最糟糕的选择。只有在没有其他人的情况下,你才应该这样做。XSLT规范实际上说:

XSLT处理器只有在控制结果树的输出方式时才能禁用输出转义。情况可能并非总是如此。例如,结果树可以用作另一个XSLT转换的源树,而不是输出。不需要XSLT处理器来支持禁用输出转义。[……]

由于禁用输出转义可能不适用于所有XSLT处理器,并可能导致XML格式不正确,只有在没有其他选择时才应使用它

(XSLT 1.0建议,第16.4节;增加了重点)

如果您仔细想想,为您这样的任务禁用输出转义将假定一个处理模型,在该模型中重新解析转换的序列化输出。只有这样,具有HTML格式的文本才能转换为XSLT数据模型中的实际HTML元素。但是,当您在浏览器中执行转换时,我认为浏览器根本不会实际输出结果,更不用说重新解析它了,因为转换结果已经是一个文档,原则上它可以按原样使用

最终,相关规范完全允许Firefox使用给定输入报告的行为。其他浏览器的行为不同并不是一个反指示(您为它们描述的行为也是允许的)。似乎任何依赖于
禁用输出转义的方法都不太可能满足您的需要,或者更一般地说,依赖于浏览器重新解析XSLT输出

本质上,您需要做的是将一些输入元素的字符串值解析为HTML(或XHTML),以获得要使用的节点集或结果树片段(假设XSLT 1.0)。这里已经多次提出了这些问题,除了
禁用输出转义
之外,所有其他解决方案都得出了这个结论。提供具体变化的有:

    • 第二个答案演示如何在XSLT中构建小型XML解析器
    • 对问题进行了编辑,以提供使用msxml的解决方案
      <div><span style="font-family: inherit; font-size: inherit"><STRONG>ZOLPIDEM ALMUS 10 mg Cpr pell séc Plq/14</STRONG></span> <span style="font-family: inherit; color:#0000ff; font-size: inherit;">(2 boîtes)</span></div><div style="font-family: inherit; font-size: inherit"><div>Prendre un comprimé au coucher, pendant un mois </div></div><div>&nbsp;</div>
      
      function decode() {
        var divs = document.getElementsByTagName('div');
        for(var i = 0; i < divs.length; i++) { 
          var div = divs[i];
          if (div.className == "stx") {
            div.innerHTML = div.firstChild.nodeValue;
          }
        }
      }