0

这是我们试图操作的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<Pois xmlns="urn:schemas-etourist:Poi">
<Poi PID="1234567">
.......
<Kategorien xmlns="urn:schemas-etourist:SchemaExtension>
    <Kategorie xmlns="">
    <Bezeichnung>Museen</Bezeichnung>
    <Ebene>1</Ebene>
    <KategorieID>28</KategorieID>
    <Kategorie xmlns="">
    <Bezeichnung>Galerie</Bezeichnung>
    <Ebene>2</Ebene>
    <KategorieID>225</KategorieID>
    <Kategorie xmlns="">
    <Bezeichnung>Sammlung</Bezeichnung>
    <Ebene>3</Ebene>
    <KategorieID>56</KategorieID>
</Kategorien>
</Poi>
</Pois>

这是我们的 XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:td="urn:schemas-etourist:Poi"
xmlns:td2="urn:schemas-etourist:SchemaExtension"
xmlns:php="http://php.net/xsl"
extension-element-prefixes="php">

<xsl:template match="/td:Pois">
<xsl:apply-templates disable-output-escaping="yes" select="td:Poi/td2:Kategorien/td2:Kategorie[contains(td2:Bezeichnung, 'Museen')]">
<xsl:sort select="td:OBJECT_TEXT_NAME"></xsl:sort>
</xsl:apply-templates>
</xsl:template>

<xsl:template match="td:Poi">
....
</xsl:template>

</xsl:stylesheet>

我们如何让模板仅选择具有包含“Museen”的“类别”的“Pois”?

任何帮助将不胜感激!

4

1 回答 1

1

td:Poi/td2:Kategorien/td2:Kategorie[包含(td2:Bezeichnung, 'Museen')]

您的元素 Kategorie 和 Bezeichnung 不在命名空间中,因此您应该删除"td2:"前缀。

至少,这是我假设的。您的类别元素似乎没有任何结束标签,因此某处出现了问题。

于 2013-07-03T11:50:35.287 回答