[英]Difference between XmlService and importxml
在谷歌應用腳本中嘗試將html解析為xml時,此代碼:
var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText();
var document = XmlService.parse(xml);
將返回如下錯誤:
第20行出錯:實體名稱必須緊跟實體參考中的“&”。 (第13行,文件“”)
大概是因為html在第20行中不是xml兼容的。令我驚訝的是,當你在google工作表中執行相同的操作並提供xpath時,html將被解析為xml而不會出現問題:
=IMPORTXML("http://finance.yahoo.com/q?s=aapl,"//div[@class='title']")
將返回“Apple Inc.(AAPL)”。 我假設sheet函數有一些方法來清理html以使其符合xml。
提前致謝!
新的XmlService
無法進行寬松解析。 所以現在沒辦法。 但是你仍然可以使用支持lenient parse的舊Xml
服務(也許IMPORTXML
使用它)。 有效的代碼:
var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText();
var document = Xml.parse(xml, true);
還有一個問題報告,關於在新的XmlService
解析: https : //code.google.com/p/google-apps-script-issues/issues/detail? XmlService
= XmlService
所以我建議你用舊的方式來關注這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.