【问题标题】:how to output all the xml in xls?如何在xls中输出所有xml?
【发布时间】:2011-09-15 17:57:30
【问题描述】:

我正在尝试为 SharePoint 开发一个 Web 部件,看来我需要学习 XSLT 才能做到这一点,修改 itemsStyle.xsl 并自定义 @987654322 @。

我正在向我当前的itemsStyle.xsl 添加一个模板,这是我当前的代码:

我正在尝试输出整个 XML 文件,因为我不知道它是如何格式化的(我不知道 SharePoint 把它放在哪里)

到目前为止,我可以通过name() 输出属性名称,但text() 什么都不返回:

<xsl:template name="printP" match="Row[@Style='printP']" mode="itemstyle">
  <xsl:for-each select="@*">
    Property:<xsl:value-of select="name()"/> |
    Value:<xsl:value-of select="text()"/><br/>
  </xsl:for-each>
</xsl:template>

欢迎任何其他关于如何找出 XML 格式的建议。

编辑:删除无用的部分。

【问题讨论】:

    标签: xml sharepoint xslt web-parts


    【解决方案1】:

    要输出属性节点的值,请使用select="."

    Value:<xsl:value-of select="."/>
    

    text() 选择作为当前节点子节点的任何文本节点。只有元素节点有文本节点子节点;属性没有。

    但是,如果您尝试将完整的输入 XML 文档复制到输出,保持不变,则将所有这些模板扔掉并使用身份转换:

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

    这将复制所有内容,不变(作为 XML,而不是文本)。

    【讨论】:

    • 操作! :)) 无论如何,您的答案要完整得多。
    • @empo - 对不起,打败你了。 :-) 为您的正确答案 +1。
    • 感谢第一部分,它运行良好。至于身份转换:我只得到节点值作为输出:(
    • @Kraz:我不确定“我只将节点值作为输出”是什么意思。如果您在 XSLT 中使用身份模板,您应该得到 XML 元素、属性等作为输出。你是说你只得到纯文本作为输出?
    • 是的。也看了源码。是否是 SharePoint 正在剥离它们?
    【解决方案2】:

    我可以通过name()输出属性名,但是text()什么都不返回

    <xsl:for-each select="@*">
        Property:<xsl:value-of select="name()"/> |
        Value:<xsl:value-of select="."/><br/>
    </xsl:for-each>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 2011-07-24
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多