如何在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 文件后如何从输出中删除编号