2016-06-29 21 views
0

私は現在、このxsltスタイルシートを使用してsitemap.xmlにスタイリングを行っています。 sitemap.xmlとファイル:XML - xsltスタイルシートを使用し、出力はありません

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="sitemap.xsl"?> 
<urlset xmlns="http://www.google.com/schemas/sitemap/0.9"> 
<url> 
    <loc>https://lakupon.com/</loc> 
    <changefreq>always</changefreq> 
    <priority>0.8</priority> 
</url> 
<url> 
    <loc>https://lakupon.com/tentang</loc> 
    <changefreq>daily</changefreq> 
    <priority>0.8</priority> 
</url> 
</urlset> 

sitemap.xslファイル:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
<html> 
<body> 
<h2>My CD Collection</h2> 
<table border="1"> 
    <tr bgcolor="#9acd32"> 
    <th>Title</th> 
    <th>Artist</th> 
    </tr> 
    <xsl:for-each select="urlset/url"> 
    <tr> 
    <td><xsl:value-of select="loc" /></td> 
    <td><xsl:value-of select="priority" /></td> 
    </tr> 
    </xsl:for-each> 
</table> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

出力はこれです: sitemap.xml

誰かが間違っているものを私に教えてくださいことはできますか?ありがとう!あなたのXMLで

答えて

0

、あなたの要素は、既定の名前空間「http://www.google.com/schemas/sitemap/0.9

<urlset xmlns="http://www.google.com/schemas/sitemap/0.9"> 

は、だからあなたのXSLには、最初に、私は「NSを使用するプレフィックス(接頭辞がどうなる、と、名前空間を宣言する必要がいます")。あなたのXPathステートメントで最後に

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:ns="http://www.google.com/schemas/sitemap/0.9" 
> 

、あなたは名前空間接頭辞(「NS」)を使用してノードを参照する必要が

<xsl:for-each select="ns:urlset/ns:url"> 
    <tr> 
    <td><xsl:value-of select="ns:loc" /></td> 
    <td><xsl:value-of select="ns:priority" /></td> 
    </tr> 
</xsl:for-each> 

名前空間はばかげている、独自のXMLに追加しませんが、これはあなたがする必要があるときにそれらを処理する方法です。

+0

ありがとうございました!それは完全に動作します。私は参照してください..私は名前空間を削除しようとします... – Clorush

+0

素晴らしい。名前空間がサイトマップに必要であることに注意してください。そうでないと悪いので、あなたと一緒に住んでいて、XSLで対処する方が良いかもしれません。 –

関連する問題