如何使用命名空间 NS2 从 XML 中获取价值

how can get value from xml with namespace ns2

提问人:Legioon 提问时间:1/26/2023 最后编辑:Legioon 更新时间:1/26/2023 访问量:123

问:

我正在使用 Rest API 从我的应用程序中获取任务状态。有时我得到的是“ns2:”的响应,有时我得到的响应是没有“ns2”的,如下图所示;

当我得到没有“ns2”的响应时,我可以使用以下命令获取任务状态。

var document = XMLManager.fromString(xmlstring);

TaskState = document.getElementsByTagName("Task").item(0).getAttribute("status");

但是,如果我得到“ns2”的响应,我将无法获得任务状态。我收到以下错误;TypeError:无法调用 null 的方法“getAttribute”

如何从两个响应中获取任务状态?

<Task xmlns="http://www.microsoft.com/cloud/v1.5" xmlns:vmext="http://www.microsoft.com/cloud/extension/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.microsoft.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:ns9="http://www.microsoft.com/cloud/versions" status="queued" operation="Creating Group" operationName="vdcGroupCreate" serviceNamespace="com.microsoft.cloud" startTime="2022-11-29T12:12:14.226+03:00" expiryTime="2022-12-29T12:12:14.226+03:00" cancelRequested="false" name="task" id="urn:cloud:task:4af7626c-29f2-45f8-bc85-f1017433bec1" href="https://domain.domain.com/api/task/4af7626c-29f2-45f8-bc85-f1017433bec1" type="application/vnd.microsoft.cloud.task+xml">
    <Link rel="edit" href="https://domain.domain.com/api/task/4af7626c-29f2-45f8-bc85-f1017433bec1" type="application/vnd.microsoft.cloud.task+xml" name="task"/>
    <Link rel="edit" href="https://domain.domain.com/api/task/4af7626c-29f2-45f8-bc85-f1017433bec1" type="application/vnd.microsoft.cloud.task+json" name="task"/>
    <Owner href="" id="urn:cloud:vdcGroup:215982ef-a837-47ba-b25f-915140584c98" type="application/json" name="test-DCG-DEFAULT"/>
    <User href="https://domain.domain.com/api/admin/user/58b3a41b-1e9a-4a63-8ac3-fb26c50a78bb" id="urn:cloud:user:58b3a41b-1e9a-4a63-8ac3-fb26c50a78bb" type="application/vnd.microsoft.admin.user+xml" name="dev-svc-vro"/>
    <Organization href="https://domain.domain.com/api/org/a93c9db9-7471-3192-8d09-a8f7eeda85f9" id="urn:cloud:org:a93c9db9-7471-3192-8d09-a8f7eeda85f9" type="application/vnd.microsoft.cloud.org+xml" name="System"/>
    <Details></Details>
    <VcTaskList/>
</Task> ```


--------------------------------------------


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Task xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:ns2="http://www.microsoft.com/cloud/v1.5" xmlns:vmext="http://www.microsoft.com/cloud/extension/v1.5" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.microsoft.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:ns9="http://www.microsoft.com/cloud/versions" status="queued" operation="Creating Group" operationName="vdcGroupCreate" serviceNamespace="com.microsoft.cloud" startTime="2023-01-25T15:09:09.716Z" expiryTime="2023-02-24T15:09:09.716Z" cancelRequested="false" name="task" id="urn:cloud:task:7b3b217d-e618-48b6-a7c5-d51c96f41b14" href="https://demo.domain.com/api/task/7b3b217d-e618-48b6-a7c5-d51c96f41b14" type="application/vnd.microsoft.cloud.task+xml">
    <ns2:Link rel="edit" href="https://demo.domain.com/api/task/7b3b217d-e618-48b6-a7c5-d51c96f41b14" type="application/vnd.microsoft.cloud.task+xml" name="task"/>
    <ns2:Link rel="edit" href="https://demo.domain.com/api/task/7b3b217d-e618-48b6-a7c5-d51c96f41b14" type="application/vnd.microsoft.cloud.task+json" name="task"/>
    <ns2:Owner href="" id="urn:cloud:vdcGroup:356a425f-b334-416a-9f1a-2b1c72228588" type="application/json" name="1463341310test3-DCG-DEFAULT"/>
    <ns2:User href="https://demo.domain.com/api/admin/user/fb6f0924-11b7-40d3-bed4-7a582ba8b529" id="urn:cloud:user:fb6f0924-11b7-40d3-bed4-7a582ba8b529" type="application/vnd.microsoft.admin.user+xml" name="prod-svc-vro"/>
    <ns2:Organization href="https://demo.domain.com/api/org/a93c9db9-7471-3192-8d09-a8f7eeda85f9" id="urn:cloud:org:a93c9db9-7471-3192-8d09-a8f7eeda85f9" type="application/vnd.microsoft.cloud.org+xml" name="System"/>
    <ns2:Details></ns2:Details>
    <ns2:VcTaskList/>
</ns2:Task>```
-解析 xml-namespaces

评论

0赞 Yitzhak Khabinsky 1/26/2023
请标记您的特定编程语言。

答:

0赞 Jack Fleeting 1/26/2023 #1

尝试更改

TaskState

document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml",
      "ns2:task"
    )[0].getAttribute('status')

看看它是否有效。