4

以下を含むxmlファイルがあります。

<?xml version="1.0"?>
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:mods="http://www.loc.gov/mods/v3"  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xlink="http://www.w3.org/1999/xlink">
   <titleInfo><title>A-Title-01</title></titleInfo>
</mods>

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="/">
    <h2>Description</h2>
    <p>Hello</p>
    <p><xsl:value-of select="titleInfo/title"/></p>
</xsl:template>
</xsl:stylesheet>

私の問題は、xHTML でタイトルの値を取得できないことです。しか見えなかった

説明

こんにちは

しかし、次のようにxmlからデフォルトの名前空間を削除すると:

<?xml version="1.0"?>
<mods xmlns:mods="http://www.loc.gov/mods/v3"  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xlink="http://www.w3.org/1999/xlink">
   <titleInfo><title>A-Title-01</title></titleInfo>
</mods>

スタイル シートの一致を<xsl:template match="/mods">I can see the title value に変更します。

しかし、xml はフォームによって生成され、デフォルトの名前空間を削除すると機能しないため、xml からデフォルトの名前空間を削除することはできません。これを回避する方法や、何か間違っているかどうかもわかりません。助けてください。

前もって感謝します。

4

2 に答える 2

3

名前空間に接頭辞付きの宣言を追加してから、接頭辞付きの名前を照合します。

以下はテストされていません:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:loc="http://www.loc.gov/mods/v3" exclude-result-prefixes="loc">
<xsl:template match="/loc:mods">
    <h2>Description</h2>
    <p>Hello</p>
    <p><xsl:value-of select="loc:titleInfo/loc:title"/></p>
</xsl:template>
</xsl:stylesheet>
于 2013-09-19T01:17:59.983 に答える