-1

誰もが Nodejs で XML から HTML への変換に取り組んでいましたが、「メソッド '適用' がありません」というエラーが発生しました

var fs = require('fs');   
var libxslt = require('libxslt');   
var libxmljs = require('libxmljs');   


var docSource = fs.readFileSync('Hello.xml', 'utf8');    
var stylesheetSource = fs.readFileSync('Hello.xsl', 'utf8');    
var stylesheet = libxmljs.parseXml(stylesheetSource);    
var result = stylesheet.apply(docSource);    
res.end(result);    

エラー:

TypeError: Object <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="/hello-world"><HTML><HEAD><TITLE/></HEAD><BODY><H1><xsl:value-of select="greeting"/></H1>hello</BODY></HTML> </xsl:template>
</xsl:stylesheet>
has no method 'apply'
   at C:\WEBROOT\DM\wwwRoot\hello\node_modules\Simple_Server.js:151:42
   at Layer.handle [as handle_request] 
4

2 に答える 2

1

あなたstylesheet.apply(docSource)が失敗したことを意味するエラーstylesheetは、そのメソッドがないためです。を見ると、 の結果ではなく、 の結果にthe docs for xsltあることがかなり明確になります。したがって、次のことを行う必要があります。.applylibxslt.parselibxmljs.parseXml

var fs = require('fs');   
var libxslt = require('libxslt');   
var libxmljs = require('libxmljs');   

var docSource = fs.readFileSync('Hello.xml', 'utf8');    
var stylesheetSource = fs.readFileSync('Hello.xsl', 'utf8');  

var stylesheetObj = libxmljs.parseXml(stylesheetSource);
var doc = libxmljs.parseXml(docSource);

var stylesheet = libxslt.parse(stylesheetObj);
var result = stylesheet.apply(doc);    
res.end(result);   
于 2014-12-16T06:17:08.120 に答える