2011-06-15 17 views
2

試圖開發SharePoint中的WebPart,它似乎我需要學習XSLT做到這一點,修改itemsStyle.xsl和定製contentquery.webpart如何在xls中輸出所有的xml?

我加入一個模板,以我目前的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格式的任何其他建議是值得歡迎的。

編輯:刪除無用的部分。

回答

3

要輸出屬性節點的值,使用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,而不是文本)。

+0

行動! :))無論如何,你的答案要完整得多。 – 2011-06-15 17:43:30

+0

@empo - 抱歉,打敗你。 :-) +1雖然你的正確答案。 – LarsH 2011-06-15 17:49:34

+0

感謝您的第一部分,它完美的作品。至於Identity變換:我只得到節點值作爲輸出:( – Kraz 2011-06-15 18:25:47

2

我可以輸出屬性名稱槽名(),但文本()返回任何

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