【问题标题】:how to avoid the spaces b/w the nodes/elements in saxon parser/xalon parser如何避免撒克逊解析器/xalan解析器中节点/元素之间的空格
【发布时间】:2012-09-15 20:24:51
【问题描述】:

我的输入如下 sn-p,

输入片段:

    <div class="a">
      <table>
        <col width="4" />
        <col width="8" />
        <col width="5" />
        <tbody>
          <tr>
            <td>ABC</td>
            <td>DEF </td>
            <td>GHI</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="x">

    <table>
        <col width="5" />
        <col width="8" />
        <col width="8" />
    <tbody>
          <tr>
            <td>ABC</td>
            <td>DEF </td>
            <td>GHI</td>
          </tr>
        </tbody>

我目前在 div class="a" 标记内的 table,我想检查紧随其后的兄弟 div 并且它的第一个孩子是 table 或者什么都没有。我编写了以下 XPath:./../following-sibling::div[1]/node()[1] ) = 'table'

我在 altova XMLSpy 中得到了预期的输出,但在 saxon parser 中没有给出准确的输出,因为 &lt;div&gt;&lt;table&gt; 之间有一些空格,并且该空间被视为文本节点。

如何避免标签之间的空格,或者有其他解决方案吗?

sn-p 代码:

<xsl:choose>

<xsl:when local-name(./../following-sibling::div[1]/node()[1] ) = 'table' ">    
  loagic-1
</xsl:when>
<xsl:otherwise>
logic-2 
  </xsl:otherwise>

</xsl:choose>

【问题讨论】:

    标签: java xslt xpath saxon xalan


    【解决方案1】:

    虽然伊恩的回答是正确的,但更清洁的解决方案是......

    <xsl:when test="../following-sibling::div[1]/*[1]/self::table">
    

    此外,如果您不关心 div 与其子表之间的任何干预元素,您可以简化为 ...

    <xsl:when test="../following-sibling::div[1]/table">
    

    【讨论】:

      【解决方案2】:

      你需要使用

      <xsl:strip-space elements="*"/>
      

      在样式表的顶层,告诉它在解析时忽略纯空格文本节点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-02
        • 2021-12-22
        • 1970-01-01
        • 2021-11-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        相关资源
        最近更新 更多