我正在使用xml2js模块将xml文件解析为JS对象。 xml文档在所有节点中使用名称空间。该文件的片段如下所示:
<resource identifier="604262" type="imsqti_item_xmlv2p1" href="604262.xml">
<metadata>
<imsqti:qtiMetadata>
<imsqti:timeDependent>false</imsqti:timeDependent>
<imsqti:interactionType>choiceInteraction</imsqti:interactionType>
<imsqti:feedbackType>none</imsqti:feedbackType>
<imsqti:solutionAvailable>true</imsqti:solutionAvailable>
</imsqti:qtiMetadata>
<imsmd:lom>
<imsmd:general>
<imsmd:identifier>604262</imsmd:identifier>
<imsmd:parentId>627617</imsmd:parentId>
<imsmd:classicId>16211</imsmd:classicId>
<imsmd:classicParentId>238933</imsmd:classicParentId>
<imsmd:passageId>650453</imsmd:passageId>
<imsmd:classicPassageId>16203</imsmd:classicPassageId>
<imsmd:depthOfKnowledge></imsmd:depthOfKnowledge>
<imsmd:bloomsLevel></imsmd:bloomsLevel>
<imsmd:omit>false</imsmd:omit>
<imsmd:replaceWith></imsmd:replaceWith>
<imsmd:allowCalculator>0</imsmd:allowCalculator>
<imsmd:allowGrammarTools>0</imsmd:allowGrammarTools>
<imsmd:displayFormatId></imsmd:displayFormatId>
<imsmd:forceFullPage>0</imsmd:forceFullPage>
<imsmd:itemTypeId>3</imsmd:itemTypeId>
<imsmd:mediaTypeId>1</imsmd:mediaTypeId>
<imsmd:consortiumId>1</imsmd:consortiumId>
<imsmd:useTwoPointScoring></imsmd:useTwoPointScoring>
<imsmd:parccTwoPointScoring></imsmd:parccTwoPointScoring>
</imsmd:general>
当它被转换为JSON时,我的对象键为&#34; imsmd:lom&#34;和&#34; imsmd:general&#34;所以当我尝试使用点表示法访问对象的部分时,例如result.imsmd:lom.imsmd:general我得到一个错误,说明冒号所在的意外标记。
我已经使用了xml2js解析器的stripPrefix方法,但它没有删除这些前缀。是否有另一种方法来删除前缀或是否有不同的方法来遍历JS对象以避免错误?
答案 0 :(得分:0)
object["property"]
是
的语法糖object.imsmd:lom
因此,由于object["imsmd:lom"]
不是有效的标识符,因此您必须使用foo()
。