Имам този XML
<?xml version="1.0" encoding="utf-8"?>
<document>
<metadata>
<field name="MyWebsite/Metadata/Keywords">marketing business</field>
<field name="MyWebsite/Metadata/PageTitle">PageTitle1</field>
<field name="MyWebsite/Metadata/active_url">marketing business link</field>
</metadata>
<metadata>
<field name="MyWebsite/Metadata/Keywords">planning development</field>
<field name="MyWebsite/Metadata/PageTitle">PageTitle2</field>
<field name="MyWebsite/Metadata/active_url">planning development link</field>
</metadata>
<metadata>
<field name="MyWebsite/Metadata/Keywords">learning development</field>
<field name="MyWebsite/Metadata/PageTitle">PageTitle3</field>
<field name="MyWebsite/Metadata/active_url">learning development link</field>
</metadata>
и моят 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>Updated Tool Information:</h2>
<table border="1">
<xsl:for-each select="document/metadata/field">
<tr>
<xsl:if test = "@name = "MyWebsite/Metadata/Keywords" and contains(.,"development")">
<td>Page Title: <xsl:value-of select="field[@name = "MyWebsiteMetadata/PageTitle"]"/></td>
<td>URL: <xsl:value-of select="field[@name = "MyWebsiteMetadata/active_url"]"/> </td>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
Целта ми е да имам съвпадение на низ с "разработка" например и на страницата ще се показва само заглавието на страницата и URL адреса.
Очакваните резултати трябва да се показват по този начин -
- Заглавие на страницата: PageTitle2 URL: връзка за планиране на развитие
- Заглавие на страницата: PageTitle3 URL: връзка за обучение
За съжаление, кодът по-горе не показва нищо, той е празен.
Отговори:
0 за отговор № 1Вместо
<xsl:for-each select="document/metadata/field">
<tr>
<xsl:if test = "@name = "MyWebsite/Metadata/Keywords" and contains(.,"development")">
<td>Page Title: <xsl:value-of select="field[@name = "MyWebsiteMetadata/PageTitle"]"/></td>
<td>URL: <xsl:value-of select="field[@name = "MyWebsiteMetadata/active_url"]"/> </td>
</xsl:if>
</tr>
</xsl:for-each>
ти искаш
<xsl:for-each select="document/metadata[field[@name = "MyWebsite/Metadata/Keywords" and contains(.,"development")]]">
<tr>
<td>Page Title: <xsl:value-of select="field[@name = "MyWebsiteMetadata/PageTitle"]"/></td>
<td>URL: <xsl:value-of select="field[@name = "MyWebsiteMetadata/active_url"]"/> </td>
</tr>
</xsl:for-each>