2013-02-14 67 views
0

我正在学习xml和XSLT。XSLT使用doc函数进行xml

,我想创建可以从family.xml文件

我有显示所有名的XSLT文件...

文档( “family.xml”)// NAME

但是,我不太确定在XSLT文件上使用doc函数的语法。

有人能帮助我吗?

感谢

+0

请问你的XSL样子现在呢? – Vinit 2013-02-15 01:15:09

+0

您使用什么来处理XSLT?您拥有的XPath可以作为XQuery执行,并在不使用XSLT的情况下正确返回您想要的内容。 – 2013-02-15 01:33:01

回答

1

让我们说你filename.xml中是这样的:

<?xml version="1.0"?> 
<bookstore> 
    <book category="COOKING"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
    </book> 
    <book category="CHILDREN"> 
    <title lang="en">Harry Potter</title> 
    <author>J K. Rowling</author> 
    <year>2005</year> 
    <price>29.99</price> 
    </book> 
    <book category="WEB"> 
    <title lang="en">Learning XML</title> 
    <author>Erik T. Ray</author> 
    <year>2003</year> 
    <price>39.95</price> 
    </book> 
</bookstore> 

要得到所有的标题:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0"> 

<!-- match root documents tag --> 
<xsl:template match="/"> 
<xsl:apply-templates select="document('filename.xml')/bookstore//title/node()" mode="document"/> 
</xsl:template> 


    <xsl:template match="/" mode="document"> 
    <xsl:copy-of select="."/> 
    </xsl:template> 

</xsl:stylesheet> 
+0

为什么在select中使用'xsl:copy-of'和'document()'路径时为什么要使用'xsl:apply-templates'? – 2013-02-15 01:31:14

+0

@丹尼尔:只是一个首选项,因为没有提到的问题..你可以使用复制或价值或应用模板等这个 – Vinit 2013-02-15 01:38:13

+0

谢谢大声笑它真的帮助我理解大声笑 – 2013-02-15 02:07:10