Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌的xml问题_Javascript_Xml_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 谷歌的xml问题

Javascript 谷歌的xml问题,javascript,xml,google-apps-script,google-sheets,Javascript,Xml,Google Apps Script,Google Sheets,我正在尝试从UPS中提取数据,以便跟踪到电子表格中。XML提要的signedforbyname部分有时存在,有时不存在。当它不存在时,我会遇到一个问题: TypeError:无法从未定义中读取属性“文本”。(第60行,文件“代码”) 如果我注释掉第60行,该行正在查找signedforbyname,那么在我从应该生成的字符串中取出变量之后,我就没事了 我对javascript不是很熟悉,所以我可能只是在做一件愚蠢的语法工作,这将非常棒。我完全赞成简单的答案。如果有人能给我指出正确的方向,我将不胜

我正在尝试从UPS中提取数据,以便跟踪到电子表格中。XML提要的signedforbyname部分有时存在,有时不存在。当它不存在时,我会遇到一个问题: TypeError:无法从未定义中读取属性“文本”。(第60行,文件“代码”) 如果我注释掉第60行,该行正在查找signedforbyname,那么在我从应该生成的字符串中取出变量之后,我就没事了

我对javascript不是很熟悉,所以我可能只是在做一件愚蠢的语法工作,这将非常棒。我完全赞成简单的答案。如果有人能给我指出正确的方向,我将不胜感激

我认为使用if-then检查值是否存在是可行的,但这似乎也不起作用,因为无论是否使用if/then,相同的错误都会发生在相同的位置(即使我弄乱了语法)

我没有注意到的代码:

catch(err) {
if (jsonText.TrackResponse.Shipment.Package.Activity.ActivityLocation.SignedForByName.Text !==null){
  var signedBy = jsonText.TrackResponse.Shipment.Package.Activity.ActivityLocation.SignedForByName.Text;}
  else {var signedBy = "No Signature";}
var dropLocation = jsonText.TrackResponse.Shipment.Package.Activity.ActivityLocation.Description.Text;
var estDate = 'Signed By: '+signedBy+' @ '+dropLocation;
来自日志的XML:

[15-03-28 07:52:43:381 CST] Xml.parse([<?xml version="1.0"?>
<TrackResponse><Response><ResponseStatusCode>1</ResponseStatusCode><ResponseStatusDescription>Success</ResponseStatusDescription></Response><Shipment><Shipper><ShipperNumber>xxxx</ShipperNumber><Address><AddressLine1>xxxxx</AddressLine1><City>TRACY</City><StateProvinceCode>CA</StateProvinceCode><PostalCode>95304   9370</PostalCode><CountryCode>US</CountryCode></Address></Shipper><ShipTo><Address><City>ROUNDUP</City><StateProvinceCode>MT</StateProvinceCode><PostalCode>59072</PostalCode><CountryCode>US</CountryCode></Address></ShipTo><ShipmentWeight><UnitOfMeasurement><Code>LBS</Code></UnitOfMeasurement><Weight>4.90</Weight></ShipmentWeight><Service><Code>003</Code><Description>GROUND</Description></Service><ReferenceNumber><Code>01</Code><Value>xxxxxxxx</Value></ReferenceNumber><ShipmentIdentificationNumber>1ZA85Y090310073852</ShipmentIdentificationNumber><PickupDate>20150318</PickupDate><DeliveryDateUnavailable><Type>Scheduled Delivery</Type><Description>Scheduled Delivery Date is not currently available, please try back later</Description></DeliveryDateUnavailable><Package><TrackingNumber>1ZA85Y090310073852</TrackingNumber><Activity><ActivityLocation><Address><City>ROUNDUP</City><StateProvinceCode>MT</StateProvinceCode><PostalCode>59072</PostalCode><CountryCode>US</CountryCode></Address><Code>MP</Code><Description>GARAGE</Description></ActivityLocation><Status><StatusType><Code>D</Code><Description>DELIVERED</Description></StatusType><StatusCode><Code>FS</Code></StatusCode></Status><Date>20150323</Date><Time>131200</Time></Activity><PackageWeight><UnitOfMeasurement><Code>LBS</Code></UnitOfMeasurement><Weight>4.90</Weight></PackageWeight><ReferenceNumber><Code>01</Code><Value>FN1-2514196-2965923</Value></ReferenceNumber><ReferenceNumber><Code>01</Code><Value>D3M0KFD7K</Value></ReferenceNumber><ReferenceNumber><Code>01</Code><Value>NA</Value></ReferenceNumber><ReferenceNumber><Code>01</Code><Value>UPS-CAOAK-T00441361L  UPS842508  UP</Value></ReferenceNumber></Package></Shipment></TrackResponse>, true]) [0.067 seconds]
[15-03-28 07:52:43:450 CST] Logger.log([{TrackResponse={Response={ResponseStatusCode={Text=1}, ResponseStatusDescription={Text=Success}}, Shipment={ShipmentIdentificationNumber={Text=1ZA85Y090310073852}, Service={Description={Text=GROUND}, code={Text=003}}, ReferenceNumber={Value={Text=129821607}, code={Text=01}}, Shipper={address={PostalCode={Text=95304   9370}, StateProvinceCode={Text=CA}, CountryCode={Text=US}, AddressLine1={Text=xxxxx}, City={Text=TRACY}}, ShipperNumber={Text=xxxx}}, Package={Activity={Status={StatusCode={code={Text=FS}}, StatusType={Description={Text=DELIVERED}, code={Text=D}}}, Time={Text=131200}, Date={Text=20150323}, ActivityLocation={Description={Text=GARAGE}, address={PostalCode={Text=59072}, StateProvinceCode={Text=MT}, CountryCode={Text=US}, City={Text=ROUNDUP}}, code={Text=MP}}}, ReferenceNumber=[{Value={Text=FN1-2514196-2965923}, code={Text=01}}, {Value={Text=D3M0KFD7K}, code={Text=01}}, {Value={Text=NA}, code={Text=01}}, {Value={Text=UPS-CAOAK-T00441361L  UPS842508  UP}, code={Text=01}}], TrackingNumber={Text=1ZA85Y090310073852}, PackageWeight={UnitOfMeasurement={code={Text=LBS}}, Weight={Text=4.90}}}, ShipmentWeight={UnitOfMeasurement={code={Text=LBS}}, Weight={Text=4.90}}, DeliveryDateUnavailable={Description={Text=Scheduled Delivery Date is not currently available, please try back later}, Type={Text=Scheduled Delivery}}, PickupDate={Text=20150318}, ShipTo={address={PostalCode={Text=59072}, StateProvinceCode={Text=MT}, CountryCode={Text=US}, City={Text=ROUNDUP}}}}}}, []]) [0.001 seconds]
[15-03-28 07:52:43:451 CST] Logger.log([1, []]) [0 seconds]
[15-03-28 07:52:43:523 CST] Execution failed: TypeError: Cannot read property "Text" from undefined. (line 60, file "Code") [0.551 seconds total runtime]

编辑:尝试检查是否仅符合以下条件:
SignedForByName

if (jsonText.TrackResponse.Shipment.Package.Activity.ActivityLocation.SignedForByName) { ... }
然后将变量设置为
…SignedForByName.Text,如果存在
SignedForByName


在测试JSON对象时,我复制了您在查找
SignedForName.Text
时的错误消息,但在尝试访问
SignedForByName
时得到了
undefined

我尝试按照您的建议对其进行编辑,并得到了相同的错误。我也一样==未定义。还有其他想法吗?我能在这里做什么?TypeError:无法从未定义中读取属性“文本”。(第60行,文件“代码”)解释器嗯,我会尝试一下,但是你确定你进入了catch块吗?也许在问题中包含更多的上下文?第60行是catch块中的那一行,如果我去掉if/then的内容,只做注释,它就会通过并处理得很好。。。除非有一个签名,在这种情况下,由于它被注释掉了,它会丢失它。。。我不知道你在寻找什么样的环境。基本上,我试图处理未定义的值,但它不存在。代码不喜欢它并产生错误,我似乎无法编写代码来处理它。事实上,我根本不知道为什么它会被抓住。我看不出以后会有任何错误发生。搞定了!非常感谢。