【发布时间】:2015-03-18 09:25:18
【问题描述】:
我正在使用
从外部工具获取 XML 响应var myXML = api.path("item/"+itemId+"/metadata").dataType("xml").get();
我以这种方式收到的 XML 结构如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MetadataListDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<item id="VX-3594">
<metadata>
<revision>VX-61522,VX-61520,VX-61519,VX-61515,VX-61513,VX-61514,VX-61525,VX-61523</revision>
<group>Final Cut Server</group>
<timespan start="-INF" end="+INF">
<field uuid="2913190d-635c-4f81-951c-4ff3f934a547" user="system" timestamp="2015-03-16T16:52:48.061+01:00" change="VX-61523">
<name>shapeTag</name>
<value uuid="2c8b57d0-5c47-49c9-a4f0-54f7fef803cc" user="system" timestamp="2015-03-16T16:52:48.061+01:00" change="VX-61523">lowres</value>
<value uuid="6d994b0c-9d91-4b32-8052-824b3467a29e" user="system" timestamp="2015-03-16T16:52:48.061+01:00" change="VX-61523">original</value>
<value uuid="85cd07b7-6f13-4f6c-86fa-e42db20860c0" user="system" timestamp="2015-03-16T16:52:48.061+01:00" change="VX-61523">house_format_audio_through</value>
</field>
<field uuid="e2b4ca3c-6765-4890-99f4-f6e0624099eb" user="admin" timestamp="2015-03-16T16:47:57.506+01:00" change="VX-61513">
<name>portal_mf129489</name>
<value uuid="ab60ed17-75f4-4593-b068-9d8b6a700025" user="admin" timestamp="2015-03-16T16:47:57.506+01:00" change="VX-61513">no</value>
</field>
</timespan>
</metadata>
</item>
</MetadataListDocument>
现在我需要提取名称为portal_mf129489 的字段的值,在本例中为no。
为了从 xml 输出中提取数据,我已经设置了默认名称空间:
default xml namespace = "http://xml.vidispine.com/schema/vidispine";
我可以使用
var myTimespan = myXML.item.metadata.timespan;
不过,我的问题是,我怎样才能找到一个 field 元素,它有一个名为 portal_mf129489 的子元素?如果我找到这个元素,我需要获取名为 value 的字段的子元素的值。
每个 XML 都有多个字段元素,在我要查找的字段内,name 始终是第一个子元素,value 始终是第二个元素。
有什么想法吗?
【问题讨论】:
标签: javascript xml xml-parsing