Run Code: Cmd+Shift+Enter. New Code Block: Cmd+Option+I

Question 3 and Question 4: Load the XML with the DTD into R using validation.

[1] "The document is DTD valid."

Question 5: Execute an XPath expression that returns the names of all customers that do not live in “MA”? Return the company name.

[1] "Company names of customers not living in MA:"
[1] "Great Lakes Food Market"    "Hungry Coyote Import Store"
[3] "Lazy K Kountry Store"       "Eduardo Moveis"            
[5] "Let's Stop N Shop"         

Question 6: Using the result returned in (5), count how many customers there are.

[1] "Number of customers not living in MA: 5"

Question 7: Using a combination of R and XPath, calculate the total amount paid for freight for all orders placed by customer except for those with ID “GREAL”.

[1] "Total freight for orders not placed by GREAL: 878.59"

Question 8: Using a combination of R and XPath, calculate the average amount paid for freight for all orders shipped to Oregon (“OR”) in the United States.

[1] "Average freight for orders shipped to Oregon, USA: 80.918125"
LS0tCnRpdGxlOiAiSVMyMDAwIENyZWF0ZSBDb21wbGV4IFhQYXRoIEV4cHJlc3Npb25zIgphdXRob3I6ICJQaGlsaXAgTmcgUGFjayIKZGF0ZTogIlNwcmluZyAyMDI0IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tClJ1biBDb2RlOgoqQ21kK1NoaWZ0K0VudGVyKi4gCk5ldyBDb2RlIEJsb2NrOgoqQ21kK09wdGlvbitJKgoKIyMgUXVlc3Rpb24gMyBhbmQgUXVlc3Rpb24gNDogTG9hZCB0aGUgWE1MIHdpdGggdGhlIERURCBpbnRvIFIgdXNpbmcgdmFsaWRhdGlvbi4KCmBgYHtyIFEzX1E0X0xvYWRYTUx3aXRoRFREVmFsaWRhdGlvbiwgZWNobz1GQUxTRX0KbGlicmFyeShYTUwpCmxpYnJhcnkgKFJDdXJsKQoKIyBRdWVzdGlvbiAzOiBDdXN0b20gRFREIGlzIGVtYmVkZGVkIHdpdGhpbiB0aGUgQ3VzdG9tZXJzQW5kT3JkZXJzLnhtbCBmaWxlCnhtbF9maWxlIDwtICJDdXN0b21lcnNBbmRPcmRlcnMueG1sIgoKIyBUcnkgdG8gbG9hZCB0aGUgWE1MIGZpbGUgd2l0aCBEVEQgdmFsaWRhdGlvbgpvcHRpb25zID0gWE1MOjpOT0VOVCArIFhNTDo6RFRETE9BRCArIFhNTDo6RFREVkFMSUQKdHJ5Q2F0Y2goewogIGRvYyA8LSB4bWxQYXJzZSh4bWxfZmlsZSwgb3B0aW9ucyA9IG9wdGlvbnMpCiAgcHJpbnQoIlRoZSBkb2N1bWVudCBpcyBEVEQgdmFsaWQuIikKfSwgZXJyb3IgPSBmdW5jdGlvbihlKSB7CiAgcHJpbnQoIlRoZSBkb2N1bWVudCBpcyBub3QgRFREIHZhbGlkLiIpCn0pCgpgYGAKCiMjIFF1ZXN0aW9uIDU6IEV4ZWN1dGUgYW4gWFBhdGggZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgdGhlIG5hbWVzIG9mIGFsbCBjdXN0b21lcnMgdGhhdCBkbyBub3QgbGl2ZSBpbiAiTUEiPyBSZXR1cm4gdGhlIGNvbXBhbnkgbmFtZS4KYGBge3IgUTUsIGVjaG89RkFMU0V9CmN1c3RvbWVyX25vZGVzIDwtIGdldE5vZGVTZXQoZG9jLCAiLy9DdXN0b21lcltGdWxsQWRkcmVzcy9SZWdpb24gIT0gJ01BJ10vQ29tcGFueU5hbWUiKQpjb21wYW55X25hbWVzIDwtIHNhcHBseShjdXN0b21lcl9ub2RlcywgeG1sVmFsdWUpCnByaW50KCJDb21wYW55IG5hbWVzIG9mIGN1c3RvbWVycyBub3QgbGl2aW5nIGluIE1BOiIpCnByaW50KGNvbXBhbnlfbmFtZXMpCmBgYAoKIAojIyBRdWVzdGlvbiA2OiBVc2luZyB0aGUgcmVzdWx0IHJldHVybmVkIGluICg1KSwgY291bnQgaG93IG1hbnkgY3VzdG9tZXJzIHRoZXJlIGFyZS4KYGBge3IgUTYsIGVjaG89RkFMU0V9Cm51bV9jdXN0b21lcnMgPC0gbGVuZ3RoKGNvbXBhbnlfbmFtZXMpCnByaW50KHBhc3RlKCJOdW1iZXIgb2YgY3VzdG9tZXJzIG5vdCBsaXZpbmcgaW4gTUE6IiwgbnVtX2N1c3RvbWVycykpCmBgYAoKCgojIyBRdWVzdGlvbiA3OiBVc2luZyBhIGNvbWJpbmF0aW9uIG9mIFIgYW5kIFhQYXRoLCBjYWxjdWxhdGUgdGhlIHRvdGFsIGFtb3VudCBwYWlkIGZvciBmcmVpZ2h0IGZvciBhbGwgb3JkZXJzIHBsYWNlZCBieSBjdXN0b21lciBleGNlcHQgZm9yIHRob3NlIHdpdGggSUQgIkdSRUFMIi4KYGBge3IgUTcsIGVjaG89RkFMU0V9Cm9yZGVyX25vZGVzIDwtIGdldE5vZGVTZXQoZG9jLCAiLy9PcmRlcltDdXN0b21lcklEICE9ICdHUkVBTCddL1NoaXBJbmZvL0ZyZWlnaHQiKQpmcmVpZ2h0X2Ftb3VudHMgPC0gc2FwcGx5KG9yZGVyX25vZGVzLCB4bWxWYWx1ZSkKdG90YWxfZnJlaWdodCA8LSBzdW0oYXMubnVtZXJpYyhmcmVpZ2h0X2Ftb3VudHMpKQpwcmludChwYXN0ZSgiVG90YWwgZnJlaWdodCBmb3Igb3JkZXJzIG5vdCBwbGFjZWQgYnkgR1JFQUw6IiwgdG90YWxfZnJlaWdodCkpCmBgYAoKCiMjIFF1ZXN0aW9uIDg6IFVzaW5nIGEgY29tYmluYXRpb24gb2YgUiBhbmQgWFBhdGgsIGNhbGN1bGF0ZSB0aGUgYXZlcmFnZSBhbW91bnQgcGFpZCBmb3IgZnJlaWdodCBmb3IgYWxsIG9yZGVycyBzaGlwcGVkIHRvIE9yZWdvbiAoIk9SIikgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuCmBgYHtyIFE4LCBlY2hvPUZBTFNFfQpvcmVnb25fb3JkZXJfbm9kZXMgPC0gZ2V0Tm9kZVNldChkb2MsICIvL09yZGVyW1NoaXBJbmZvL1NoaXBSZWdpb24gPSAnT1InIGFuZCBTaGlwSW5mby9TaGlwQ291bnRyeSA9ICdVU0EnXS9TaGlwSW5mby9GcmVpZ2h0IikKb3JlZ29uX2ZyZWlnaHRfYW1vdW50cyA8LSBzYXBwbHkob3JlZ29uX29yZGVyX25vZGVzLCB4bWxWYWx1ZSkKYXZlcmFnZV9vcmVnb25fZnJlaWdodCA8LSBtZWFuKGFzLm51bWVyaWMob3JlZ29uX2ZyZWlnaHRfYW1vdW50cykpCnByaW50KHBhc3RlKCJBdmVyYWdlIGZyZWlnaHQgZm9yIG9yZGVycyBzaGlwcGVkIHRvIE9yZWdvbiwgVVNBOiIsIGF2ZXJhZ2Vfb3JlZ29uX2ZyZWlnaHQpKQpgYGAKCg==