我有一個XML文檔的部分匹配的表:填充基於節點
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="guitarsXSLStyleSheet.xsl" type="text/xsl"?>
<guitars>
<guitar>
<model>Strat</model>
<year>1978</year>
<price>2500</price>
</guitar>
<guitar>
<model>Jaguar</model>
<year>2006</year>
<price>400</price>
</guitar>
<guitar>
<model>Strat</model>
<year>2015</year>
<price>900</price>
</guitar>
<guitar>
<model>Tele</model>
<year>1981</year>
<price>1200</price>
</guitar>
</guitars>
我有一個XSL樣式表,其將這些值中一個表,拔除只有吉他,其中所述模型是STRAT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<table id="guitarTable" border="1" width="200">
<tr class="header">
<th>Model</th>
<th>Year</th>
<th>Price</th>
</tr>
<xsl:apply-templates select="//guitar[model = 'Strat']"/>
</table>
</xsl:template>
<xsl:template match="guitar">
<tr>
<td> <xsl:value-of select="model" /> </td>
<td> <xsl:value-of select="year" /> </td>
<td> <xsl:value-of select="price" /> </td>
</tr>
</xsl:template>
</xsl:stylesheet>
現在,在現實的XSL文檔,我根據用戶輸入(將通過jQuery的[model = 'Strat']
一個單獨的HTML文檔中也許類型「Strat的」,也許他們鍵入「美洲虎」的用戶,所得到的表格基於此形成自己的表格),但我期待更多在這個簡化的級別上的基礎級解釋。
我想試圖讓在用戶的搜索的部分完成的型號名稱,我想使用的功能contains(string, string)
我雖然更換的:與
select="//guitar[model = 'Strat']"
在我的XSL select="//guitar/model[contains(., 'Stra')]"
但是,這樣會產生表格,只是保留標題行並返回一個只顯示「StratStrat」的單個「取消裝箱」行。
任何想法?我最好在這裏以某種方式繼續使用「contains」方法,我想我搞亂了Xpath。或者也許它需要在xsl的模板匹配部分?謝謝!
您的模板匹配'吉他',所以請嘗試'選擇=「/ /吉他[包含(模型,'斯特')]」'。附: ''//昂貴 - 用確切的路徑替換它。 –
這樣做!謝謝。希望你把這個作爲答案,以便我可以檢查它是否正確。 – NateH06
如你所願。 --- –