「選択」を使用してノードが存在するかどうかを確認し、その中のテキストを抽出したいと思います。そうでない場合は、文字列を挿入する必要があります。この例ではノードの存在を選択するXSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:gmd="http://www.isotc211.org/2005/gmd"
xmlns:gts="http://www.isotc211.org/2005/gts"
xmlns:gco="http://www.isotc211.org/2005/gco"
xmlns:gml="http://www.opengis.net/gml"
xmlns:geonet="http://www.fao.org/geonetwork">
<xsl:output method="text" encoding="utf-8" />
<!-- identity templates walks tree and suppresses nodes with no template -->
<xsl:template match="node()|@*">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<!-- output only on nodes we select -->
<xsl:template match="node()|@*" mode="output">
<xsl:copy>
<xsl:apply-templates select="node()|@*" mode="output"/>
</xsl:copy>
</xsl:template>
<xsl:template match="gmd:pointOfContact/gmd:CI_ResponsibleParty">
<xsl:choose>
<xsl:when test="gmd:individualName/gco:CharacterString">
<xsl:text>Responsible: </xsl:text>
<xsl:apply-templates mode="output"/>
<xsl:text>;</xsl:text>
</xsl:when>
<xsl:otherwise>NO Responsible: ;</xsl:otherwise>
</xsl:choose>
</xsl:template>
検索するノード全体である: "GMD:pointOfContact/GMD:CI_ResponsibleParty/GMD:INDIVIDUALNAME/GCO:の文字列"
私の出力があるべきここ は私がやったことです次の行のようなtxtファイル:
責任:Pippo;
ノードが存在し、文字列が "Pippo"の場合。
責任を負いません。
ノードが存在しない場合。
私はこの結果を得ることができない理由を教えてください。ここ
は、私が使用しているXMLの抽出された一部です:
<?xml version="1.0" encoding="UTF-8"?>
<gmi:MI_Metadata xmlns:gmi="http://sdi.eurac.edu/metadata/iso19139-2/schema/gmi" xmlns:xsi="https://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" gco:isoType="gmd:MD_Metadata" xsi:schemaLocation="http://sdi.eurac.edu/metadata/iso19139-2/schema/gmi http://sdi.eurac.edu/metadata/iso19139-2/schema/gmi/gmi.xsd">
<gmd:pointOfContact>
<gmd:CI_ResponsibleParty>
<gmd:individualName>
<gco:CharacterString>Pippo</gco:CharacterString>
</gmd:individualName>
</gmd:CI_ResponsibleParty>
</gmd:pointOfContact>
</gmi:MI_Metadata>
一定の場合には、私がこのように気にいらない見つけることができることを起こる可能性:
<gmd:pointOfContact>
<gmd:CI_ResponsibleParty>
<gmd:organisationName>
<gco:CharacterString>HOUSE</gco:CharacterString>
</gmd:organisationName>
</gmd:CI_ResponsibleParty>
</gmd:pointOfContact>
</gmi:MI_Metadata>
とタグ「INDIVIDUALNAMEを「
入力XMLのサンプルを表示するために質問を編集できますか?また、現在取得している出力も表示できますか?ありがとうございました。 –
@Tim Cの提案に感謝します。私は例を追加しました。 –