XSLT无法读取MODS XML字段值仅显示表格行问题求助
你的代码存在两处核心错误,修改后即可正常展示字段:
- 未声明对应命名空间:MODS XML自带默认命名空间
http://www.loc.gov/mods/v3,XSLT中没有声明对应前缀的情况下,直接写标签名无法匹配到任何节点。 - XPath路径不完整:你写的select表达式直接取根节点下的子节点,但实际目标字段都有多层嵌套结构,需要补全完整层级路径。
修改后的完整XSLT代码如下:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mods="http://www.loc.gov/mods/v3" exclude-result-prefixes="mods" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>MODS Record</title> </head> <body> <h2 align="center">MODS Record</h2> <table align="center" border="1"> <tr bgcolor="#D6CCA9"> <th>Author</th> <th>Title</th> <th>Publisher</th> <th>Edition</th> <th>Publication Date</th> </tr> <tr> <td><xsl:value-of select="mods:mods/mods:name/mods:namePart/mods:given" /> <xsl:value-of select="mods:mods/mods:name/mods:namePart/mods:family" /></td> <td><xsl:value-of select="mods:mods/mods:titleInfo/mods:title" /></td> <td><xsl:value-of select="mods:mods/mods:originInfo/mods:publisher" /></td> <td><xsl:value-of select="mods:mods/mods:originInfo/mods:edition" /></td> <td><xsl:value-of select="mods:mods/mods:originInfo/mods:dateIssued" /></td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet>
运行修改后的代码,即可正常显示所有指定的MODS字段内容。
内容的提问来源于stack exchange,提问作者ACS
相关产品推荐
相关产品推荐

