这并不是真正特定于 S3 的问题,它只是一个基本的 JavaScript 问题。 有没有办法让 JavaScript 为我提供 XML 文件中所有数据的多维数组?例如,假设我有这个:
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>bucketname</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>image.png</Key>
<LastModified>2011-04-05T19:22:29.000Z</LastModified>
<ETag>"53b61a2200856713abefa6949550e09a"</ETag>
<Size>291842</Size>
<Owner>
<ID>
96796a91be9047be08fae41526548b98c4499255d00abaf23f40f1d6e6398260
</ID>
<DisplayName>me</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>archive.zip</Key>
<LastModified>2011-04-29T19:05:25.000Z</LastModified>
<ETag>"16021b5e151a69b15b4fa648a28fb112"</ETag>
<Size>119042</Size>
<Owner>
<ID>
96796a91be9023be08fae41526548b98c5699255d00aaaf23f40f1d6e6398260
</ID>
<DisplayName>me</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>script.sh</Key>
<LastModified>2011-03-11T16:02:53.000Z</LastModified>
<ETag>"4e7ec24f635835a91663be368b372a1c"</ETag>
<Size>124714</Size>
<Owner>
<ID>
96796a91be90b5be0cfae41526548b98c4495255d00caaf23f40f1d6e6398260
</ID>
<DisplayName>me</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
我希望能够迭代每个 <Contents>
block ,并根据其内容运行一些代码。我知道这是可能的,但我见过的所有教程看起来都比应有的要难。
最佳答案
https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript解释如何从 JavaScript 使用 XPath。您只需提出一个描述您想要的结果的 XPath 查询,然后使用该 API 来获取结果。
如果您通过 XHR 获取 XML,那么结果中已经有一个已解析的 DOM,但如果没有,请参阅 XML parsing of a variable string in JavaScript
关于javascript - 在 JavaScript 中解析 Amazon S3 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702047/