我是一名新手,我刚进入XSLT。我正在研究手稿,我希望得到其中的专有名称(@name type ="正确的")。通过样式表我只知道如何获取名称的值(@name)如何添加类型? 以下是样式表XSLT和我创建的XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-stylesheet type="text/xsl" href="antroponimos2.xsl"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
<fileDesc>
<titleStmt>
<title>Title</title>
</titleStmt>
<publicationStmt>
<p>Publication Information</p>
</publicationStmt>
<sourceDesc>
<p>Information about the source</p>
</sourceDesc>
</fileDesc>
</teiHeader>
<text>
<body>
<div1 type="book" n="01">
<div2 type="chapter" n="000">
<pb n="001r"/>
<cb n="a"/>
<head>
<hi rend="red"><lb n="1"/>Aqui se comiença <lb n="2"/>la general & grand es<lb n="3"
/>toria que el muy noble <w type="majuscule">Rey</w>
<lb n="4"/>don alfonso fijo del noble <w type="majuscule">Rey</w>
<lb n="5"/>don fernando & dela <w type="majuscule">Reyna</w>
<lb n="6"/>donna beatriz mando fazer. <lb n="7"/>Prólogo.</hi>
</head>
<ab>
<lb n="8"/>
Et delos fechos delos malos que
reçibies<lb n="14"/>sen castigo. por se saber guardar delo non fazer.<lb n="15"/>ONde
por todas estas cosas. yo don<lb n="16"/><name type="proper" n="in">Alfonsso</name> por
la gracia de dios <phr type="apposition">Rey <phr function="list"><phr function="list"
n="1">de<lb n="17"/><name type="place" n="in">Castiella</name></phr>. <phr
function="list" n="2">de <name type="place" n="in">Toledo</name></phr>. <phr
function="list" n="3">de <name type="place" n="in">Leon</name></phr>. <phr
function="list" n="4">de <name type="place" n="in">Gal<lb n="18"
/>lizia</name></phr>. <phr function="list" n="5">de <name type="place" n="in"
>Seuilla</name></phr>. <phr function="list" n="6">de <name type="place" n="in"
>Cordoua</name></phr>
</phr></phr>
</ab>
</div2>
</div1>
</body>
</text>
</TEI>
&#13;
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:tei="http://www.tei-c.org/ns/1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h3 align="center">
<b>NOMBRES PROPIOS</b>
</h3>
<table width="750" border="1" align="center">
<tr>
<th scope="col" bgcolor="#00CCFF">
<div align="center">Nombre</div>
</th>
</tr>
<tr>
<td>
<xsl:for-each select="//tei:div1//tei:name">
<div align="center">
<xsl:value-of select="."/>
</div>
</xsl:for-each>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
&#13;
答案 0 :(得分:1)
您应该使用name
元素并匹配@type
属性,然后使用值proper
,请参阅下面的代码:
name[@type='proper']
答案 1 :(得分:0)
您可以使用以下Xpath
/TEI/text/body/div1/div2/ab/name[@type='proper']
强制DOM树中的确切级别或
//name[@type='proper']
访问DOM树中名称为name
的任何元素,并且具有名为type
的属性,其值为proper
。
此外,如果您只需要访问元素(文本)的内容,您只需将/text()
附加到xpath:
//name[@type='proper']/text()
或
/TEI/text/body/div1/div2/ab/name[@type='proper']/text()