在JavaScript中解析Amazon S3输出

时间:2011-10-09 07:27:15

标签: javascript xml amazon-s3

这不是特定于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>块,并根据其内容运行一些代码。我知道这是可能的,但我看到的所有教程看起来都比它们应该更难。

1 个答案:

答案 0 :(得分:0)

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