<?xml-stylesheet type="text/css" href="home.css"?>
<Header type="text">
<encodingDesc>
<samplingDesc>Samples taken from page 10-11,20-21,38-39, 54-55, 70-71, 80-81, 98-99, 122-123, 142-143, 148-149, 162-163, 174-175 </samplingDesc>
</encodingDesc>
<sourceDesc>
<mainContent>
<source> Abhinesh
<category>Natural, Physical and Professional Sciences</category>
<subcategory>Textile Technology</subcategory>
<text> Book </text>
<title> cloths </title>
<vol> 1 </vol>
<issue/>
</source>
<textDes>
<type/>
<headline/>
<author> V. Nurjan </author>
<translator/>
<words>3364</words>
</textDes>
</mainContent>
</sourceDesc>
<profileDesc>
<creation>
<date> 21-Dec-2010 </date>
<inputter> Abhinesh </inputter>
</creation>
<langUsage> Telugu </langUsage>
<textClass>
<channel mode="w"> print </channel>
<domain type="public"/>
</textClass>
</profileDesc>
</Header>
我检查了互联网上的每个例子,但他们只提供简单XML文件的代码,但不是这种类型。如何从这样的XML文件中提取标记数据?
答案 0 :(得分:1)
您可以使用简单的XSL转换来实现您的目的。要将所有文本作为文本文件提取,您可以使用以下XSL样式表。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*" />
<xsl:output method="text" encoding="UTF-8" />
<xsl:template match="node()">
<xsl:if test="boolean(normalize-space(text()))">
<xsl:value-of select="normalize-space(text())" /><xsl:text>
</xsl:text>
</xsl:if>
<xsl:apply-templates select="node()"/>
</xsl:template>
</xsl:stylesheet>
要执行此样式表,如果您使用类似Unix的操作系统,则需要一个像Saxon或xsltproc
的XSL解析器。
您还可以使用IE,Firefox或任何其他所需的浏览器轻松测试它。
只需将样式表保存在xml源文件所在的文件夹中即可。例如test.xsl
,然后从
<?xml-stylesheet type="text/css" href="home.css"?>
到
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
然后输出看起来像那样
Samples taken from page 10-11,20-21,38-39, 54-55, 70-71, 80-81, 98-99, 122-123, 142-143, 148-149, 162-163, 174-175
Abhinesh
Natural, Physical and Professional Sciences
Textile Technology
Book
cloths
1
V. Nurjan
3364
21-Dec-2010
Abhinesh
Telugu
print