【问题标题】:Get ArrayList in xsl using xalan使用 xalan 在 xsl 中获取 ArrayList
【发布时间】:2012-08-26 07:40:48
【问题描述】:

我有一个用于添加数据的页面。和验证器

<xsl:param name="validator"/>

<xsl:variable name="errorList" select="validator:getErrorList()" />
        <xsl:for-each select="$errorList">
            <li>
                <xsl:value-of select="." />
            </li>
        </xsl:for-each>

当验证失败时。我返回同一页面并想要获取错误列表。现在我收到 ArrayList 无法转换为 NodeList 的错误消息。

【问题讨论】:

  • 您能否修改validator.getErrorList() 方法以返回NodeList 或结果树片段?

标签: java validation xslt xalan


【解决方案1】:

我遇到了同样的问题,我通过在 java 方法中返回 org.apache.xpath.NodeSet 而不是 ArrayList&lt;String&gt; 来解决它。 XSLT 和 Java 代码如下

  • Java 方法

    public NodeSet getNodeSet(){     
    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
    Document doc = docBuilder.newDocument();  
    
    NodeSet nodeset =  new NodeSet();
    nodeset.addElement(doc.createTextNode("noteOne"));
    nodeset.addElement(doc.createTextNode("nodetTwo"));
    System.out.println("NodeSet length: " + nodeset.getLength());
       return nodeset;
     }
    
  • XSLT 代码

      <xsl:for-each select="myclass:getNodeSet()">
            <li>
                <xsl:value-of select="." />
            </li>
      </xsl:for-each>
    

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多