从.xml读取输入并将输出写入文件 + perl 时"Unrecognized type 'employees'. Ignored. C:/....."错误.xls



我的.xml文件有父元素" employees "。只是我需要将内容提取到'.xls'文件。为什么我得到这个错误:

Unrecognized type 'employees'.  Ignored. 
at C:/Strawberry/perl/site/lib/Spreadsheet/WriteExcel/FromXML.pm line 325.

任何帮助都是感激的。

我I/p:

<employees>
<employee>
<name>John Doe</name>
<age>43</age>
<sex>M</sex>
<department>Operations</department>
</employee>
<employee>
<name>Jane Doe</name>
<age>31</age>
<sex>F</sex>
<department>Accounts</department>
</employee>
<employee>
<name>Be Goode</name>
<age>32</age>
<sex>M</sex>
<department>Human Resources</department>
</employee>
</employees>

我代码:

use strict;
use warnings;
use Spreadsheet::WriteExcel::FromXML;
Spreadsheet::WriteExcel::FromXML->XMLToXLS("emp.xml", "final.xls");

O/p:

Unrecognized type 'employees'.  Ignored.
at C:/Strawberry/perl/site/lib/Spreadsheet/WriteExcel/FromXML.pm line 325.
Spreadsheet::WriteExcel::FromXML::_processTree(Spreadsheet::WriteExcel::FromXML=HASH(0xea9ad0), ARRAY(0x31da080), "employees", SCALAR(0x31d8de8), SCALAR(0x31d8e00)) called at C:/Strawberry/perl/site/lib/Spreadsheet/WriteExcel/FromXML.pm line 186
Spreadsheet::WriteExcel::FromXML::parse(Spreadsheet::WriteExcel::FromXML=HASH(0xea9ad0)) called at C:/Strawberry/perl/site/lib/Spreadsheet/WriteExcel/FromXML.pm line 79

有谁能告诉我,为什么显示这个错误?(或)从.xml提取到。xml的任何其他方法xls表吗?提前谢谢。

您的输入数据可以使用以下XSLT模板转换为Spreadsheet::WriteExcel::FromXML接受的表单:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/employees">
<workbook>
<worksheet title="employees">
<xsl:apply-templates/>
</worksheet>
</workbook>
</xsl:template>
<xsl:template match="/employees/employee">
<row>
<xsl:apply-templates/>
</row>
</xsl:template>
<xsl:template match="/employees/employee/*">
<cell>
<xsl:apply-templates/>
</cell>
</xsl:template>
</xsl:stylesheet>

导致:

<?xml version="1.0"?>
<workbook><worksheet title="employees">
<row>
<cell>John Doe</cell>
<cell>43</cell>
<cell>M</cell>
<cell>Operations</cell>
</row>
<row>
<cell>Jane Doe</cell>
<cell>31</cell>
<cell>F</cell>
<cell>Accounts</cell>
</row>
<row>
<cell>Be Goode</cell>
<cell>32</cell>
<cell>M</cell>
<cell>Human Resources</cell>
</row>
</worksheet></workbook>

最新更新