/ / XSL съвпадение на състоянието и показва само специфичен елемент на xml възел - xml, xslt, условие, съвпадение на низ

XSL елемент съвпадение състояние и дисплей специфичен елемент xml възел само - xml, xslt, състояние, съвпадение на низ

Имам този 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 адреса.

Очакваните резултати трябва да се показват по този начин -

  1. Заглавие на страницата: PageTitle2 URL: връзка за планиране на развитие
  2. Заглавие на страницата: 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>