亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析標記中帶有冒號的復雜嵌套 xml

解析標記中帶有冒號的復雜嵌套 xml

Go
開心每一天1111 2022-08-09 16:43:53
我正在嘗試解析以下xml:<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">   <env:Body>      <wd:Get_Workers_Response wd:version="v35.0" xmlns:wd="urn:com.workday/bsvc">         <wd:Request_References>            <wd:Worker_Reference>               <wd:ID wd:type="WID">11112222333444</wd:ID>               <wd:ID wd:type="Employee_ID">123456789</wd:ID>            </wd:Worker_Reference>         </wd:Request_References>        <wd:Response_Data>            <wd:Worker>               <wd:Worker_Descriptor>user xyz</wd:Worker_Descriptor>               <wd:Worker_Data>                  <wd:Worker_ID>123456789</wd:Worker_ID>                  <wd:User_ID>user_one_id</wd:User_ID>                  <wd:Personal_Data>                     <wd:Contact_Data>                       <wd:Email_Address_Data>                           <wd:Email_Address>[email protected]</wd:Email_Address>                           <wd:Usage_Data wd:Public="1">                              <wd:Type_Data wd:Primary="1">                                 <wd:Type_Reference>                                    <wd:ID wd:type="WID">12346780</wd:ID>                                    <wd:ID wd:type="Communication_Usage_Type_ID">WORK</wd:ID>                                 </wd:Type_Reference>                              </wd:Type_Data>                           </wd:Usage_Data>                           <wd:Email_Reference>                              <wd:ID wd:type="WID">0987654321</wd:ID>                              <wd:ID wd:type="Email_ID">EMAIL_REFERENCE-3-1</wd:ID>                           </wd:Email_Reference>                           <wd:ID>EMAIL_REFERENCE-3-1</wd:ID>                        </wd:Email_Address_Data>                     </wd:Contact_Data>                                       </wd:Personal_Data>}我無法進入標簽內部。由于冒號,解析似乎不起作用。我也嘗試逃避冒號()。我需要來自此 xml 的以下值:, from 和 哪個位于 嵌套標記內<env:Body>env\:BodyWIDEmployee_IDWorker_ReferenceEmail_IDwd:Email_Address_Data任何幫助將不勝感激,我是xml解析的新手,所以可能是我在這里錯過了一些東西。
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

您在結構標記中使用了錯誤的語法。


WID和Employee_ID的示例:


type wdID struct {

    ID      string `xml:"type,attr"`

    Content string `xml:",chardata"`

}


type exampleStruct struct {

    XMLName xml.Name `xml:"Envelope"`

    WIDs     []wdID   `xml:"Body>Get_Workers_Response>Request_References>Worker_Reference>ID"`

}

此外,由于標簽的名稱會重復(多個“ID”),因此必須將它們解析為一個數組,在該數組中可以獲得區分它們的唯一屬性(wdID結構)。


使用您提供的較小版本的 XML 的工作示例進入 Playground:https://play.golang.org/p/BS8crPQ7G1n


編輯:https://golang.org/pkg/encoding/xml/#Unmarshal 如果您在XML Unmarshal'er的評論中閱讀,則可以找到有關結構標記細節的一些花絮


查看完整回答
反對 回復 2022-08-09
  • 1 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號