簡體   English   中英

XmlService和importxml之間的區別

[英]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。

  • 你認為可能是這種情況嗎?
  • 如果是的話,你是否知道如何在應用程序腳本中調整xml解析器,以便我可以從yahoo finance訪問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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM