如何在xls中输出所有xml?

Posted

技术标签:

【中文标题】如何在xls中输出所有xml?【英文标题】:how to output all the xml in xls? 【发布时间】: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 格式的建议。

编辑:删除无用的部分。

【问题讨论】:

【参考方案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>

【讨论】:

以上是关于如何在xls中输出所有xml?的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Java,将excel表格1.xls内的所有数据循环输出?jxl.jar我已经弄好了,就是程序不会。

使用 pandas [Python] 提取 xls 文件后如何从输出中删除编号

“无法识别的类型'员工'。忽略。C:/ .....”从.xml读取输入并将输出写入.xls文件+ perl时出错

java如何输出xls格式的Excel表格文件

Windows获取具有大小的卷上所有文件的列表

PHP 使用 DOM 输出 XLS