これは私の最初の質問です。 しかし、問題に直面することができます。私は与えられたxhtmlを持っていて、それから特定の情報を得る必要があります。ここでXPath:選択したタグから適切な値を得ることが難しい
は、これまでのところ、私のXSLファイルです:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xpath-default-namespace="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes" encoding="UTF-8"
omit-xml-declaration="no" />
<xsl:template match="html">
<xsl:element name="Speisekarte">
<xsl:attribute name="xsi:noNamespaceSchemaLocation"
namespace="http://www.w3.org/2001/XMLSchema-instance">Speiseplan_Mensa_Schema.xsd</xsl:attribute>
<xsl:for-each select=".//table[@class='table module-food-table']">
<xsl:element name="Speisen">
<xsl:element name="namen">
<xsl:value-of select="./thead/tr/th[1]" />
</xsl:element>
<xsl:for-each select="./tbody/tr">
<xsl:element name="zutaten">
<xsl:value-of select="./td" />
</xsl:element>
<xsl:element name="preis">
<xsl:element name="Studenten">
<xsl:value-of select="./td[2]" />
</xsl:element>
<xsl:element name="Mitarbeiter">
<xsl:value-of select="./td[3]" />
</xsl:element>
<xsl:element name="Gäste">
<xsl:value-of select="./td[4]" />
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
私の問題は、要素 "zutaten" です。私は、このXHTMLファイルのうち、 "RahmsauceでHackbällchen" を取得する必要があります:
<tbody>
<tr>
<td style="width:70%">
Hackbällchen in <sup>(R)</sup> Rahmsauce <sup>(9,G,A,I)</sup>
<div class="price hidden-sm hidden-md hidden-lg">
<span>1,50 €</span><span>2,15 €</span><span>2,80 €</span>
</div>
</td>
<td class="hidden-xs" style="text-align:center">
1,50 €
</td>
<td class="hidden-xs" style="text-align:center">
2,15 €
</td>
<td class="hidden-xs" style="text-align:center">
2,80 €
</td>
</tr>
</tbody>
私が試した:私は、この与える
<xsl:value-of select="./td/text()" />
:Rahmsauce 1,50にHackbällchenを2,15€2,80 € または私は試しました:
<xsl:value-of select="./td/text()[not(self::div)]" />
これは私にエラーを与えます。
私は多くの異なることを試みました。あなたは私にこれを手伝ってもらえますか? 私の英語は私の問題を理解するのに十分なものだったと思っています。 ありがとうございます。
XPathで不要な '。/'と似た、スタイルに関する注意。要素名が静的であれば、 'xsl:element'と' xsl:attribute'は、出力のように見やすいリテラル要素と属性コンストラクタに置き換えることができます。 ... Speisekarte> ' –