我有大量的 html 文件,例如以下 01.html 文件:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My Title</title>
</head>
<body>
<item itemprop="itemprop1" content="content1" />
<item itemprop="itemprop2" content="content2" />
<item itemprop="itemprop3" content="content3" />
<item itemprop="itemprop4" content="content4" />
<item itemprop="itemprop5" content="content5" />
<item itemprop="itemprop6" content="content6" />
<item itemprop="itemprop7" content="content7" />
<item itemprop="itemprop8" content="content8" />
<item itemprop="itemprop9" content="content9" />
</body>
</html>
每个 html 文件中只有一个 itemprop="itemprop1" 的 item 节点。itemprop2、itemprop3 等也是如此。
我想要以下 txt 文件输出:
content1 | content 5
即以下内容的连接: 1. itemprop="itemprop1" 的项目的属性内容的值 2. 管道“|” 3. itemprop="itemprop5" 的item的属性content的值
我运行以下 bash 脚本:
xsltproc 01.xslt 01.html >> 02.txt
其中 01.xslt 如下:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="body">
<xsl:value-of select="//item[@itemprop='itemprop1']/@content"/>|<xsl:value-of select="item[@itemprop='itemprop5']/@content"/>
</xsl:template>
</xsl:stylesheet>
不幸的是,它不起作用。什么是正确的 xslt 文件?
更新
这是最后一个工作示例。
01.html如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My Title</title>
</head>
<body>
<item itemprop="itemprop1" content="content1" />
<item itemprop="itemprop2" content="content2" />
<item itemprop="itemprop3" content="content3" />
<item itemprop="itemprop4" content="content4" />
<item itemprop="itemprop5" content="content5" />
<item itemprop="itemprop6" content="content6" />
<item itemprop="itemprop7" content="content7" />
<item itemprop="itemprop8" content="content8" />
<item itemprop="itemprop9" content="content9" />
</body>
</html>
01.xslt 如下:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="html">
<xsl:value-of select="//item[@itemprop='itemprop1']/@content"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="//item[@itemprop='itemprop5']/@content"/>
</xsl:template>
</xsl:stylesheet>
输出 02.txt 如下:
content1|content5