2 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
I tried to do as much i could please suggest and help .
I use this method please comment and suggest.
https://play.golang.org/p/kb0HF8ykHW
package main;
import (
"fmt"
"encoding/xml"
)
func main(){
dxml := `
<?xml version="1.0"?>
<ownershipDocument>
<schemaVersion>X0306</schemaVersion>
<documentType>4</documentType>
<periodOfReport>2015-11-18</periodOfReport>
<issuer>
<issuerCik>0000820081</issuerCik>
<issuerName>CAMBREX CORP</issuerName>
<issuerTradingSymbol>CBM</issuerTradingSymbol>
</issuer>
<reportingOwner>
<reportingOwnerId>
<rptOwnerCik>0001227832</rptOwnerCik>
<rptOwnerName>KORB WILLIAM B</rptOwnerName>
</reportingOwnerId>
<reportingOwnerAddress>
<rptOwnerStreet1>1 MEADOWLANDS PLAZA</rptOwnerStreet1>
<rptOwnerStreet2/>
<rptOwnerCity>EAST RUTHERFORD</rptOwnerCity>
<rptOwnerState>NJ</rptOwnerState>
<rptOwnerZipCode>07073</rptOwnerZipCode>
<rptOwnerStateDescription/>
</reportingOwnerAddress>
<reportingOwnerRelationship>
<isDirector>1</isDirector>
<isOfficer>0</isOfficer>
<isTenPercentOwner>0</isTenPercentOwner>
<isOther>0</isOther>
</reportingOwnerRelationship>
</reportingOwner>
<nonDerivativeTable>
<nonDerivativeTransaction>
<securityTitle>
<value>Common Stock</value>
</securityTitle>
<transactionDate>
<value>2015-11-18</value>
</transactionDate>
<transactionCoding>
<transactionFormType>4</transactionFormType>
<transactionCode>S</transactionCode>
<equitySwapInvolved>0</equitySwapInvolved>
</transactionCoding>
<transactionAmounts>
<transactionShares>
<value>10000</value>
</transactionShares>
<transactionPricePerShare>
<value>50.18</value>
<footnoteId id="F1"/>
</transactionPricePerShare>
<transactionAcquiredDisposedCode>
<value>D</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<postTransactionAmounts>
<sharesOwnedFollowingTransaction>
<value>36562</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature>
<directOrIndirectOwnership>
<value>D</value>
</directOrIndirectOwnership>
<natureOfOwnership>
<value/>
</natureOfOwnership>
</ownershipNature>
</nonDerivativeTransaction>
</nonDerivativeTable>
<footnotes>
<footnote id="F1">The price reported in Column 4 is a weighted average price. These shares were sold in multiple transactions at prices ranging from $50.00 to $50.58 inclusive. The reporting person undertakes to provide to Cambrex Corporation, any security holder of Cambrex Corporation, or the staff of the Securities and Exchange Commission, upon request, full information regarding the number of shares sold at each separate price within the range set forth in this Footnote 1 to this Form 4.</footnote>
</footnotes>
<remarks/>
<ownerSignature>
<signatureName>Samantha Hanley for William B. Korb by POA</signatureName>
<signatureDate>2015-11-20</signatureDate>
</ownerSignature>
</ownershipDocument>
`
defer func() {
if errD := recover(); errD != nil {
fmt.Println("!!!!!!!!!!!!!!!!Panic Occured and Recovered in func main(), Error Info: ", errD)
}
}()
var Owner Ownershipdocs
err := xml.Unmarshal([]byte(dxml), &Owner)
fmt.Println("xml.unmarshal error info :",err)
fmt.Println("SchemaVersion : ",Owner.SchemaVersion)
fmt.Println("DocumentType : ",Owner.DocumentType)
fmt.Println("PeriodOfReport : ",Owner.PeriodOfReport)
fmt.Println("IssuerCik : ",Owner.IssuerCik)
fmt.Println("IssuerName : ",Owner.IssuerName)
fmt.Println("IssuerTradingSymbol : ",Owner.IssuerTradingSymbol)
fmt.Println("RptOwnerCik : ",Owner.RptOwnerCik)
fmt.Println("RptOwnerName : ",Owner.RptOwnerName)
fmt.Println("RptOwnerStreet1 : ",Owner.RptOwnerStreet1)
fmt.Println("RptOwnerCity : ",Owner.RptOwnerCity)
fmt.Println("RptOwnerState : ",Owner.RptOwnerState)
fmt.Println("RptOwnerZipCode : ",Owner.RptOwnerZipCode)
fmt.Println("IsDirector : ",Owner.IsDirector)
fmt.Println("IsOfficer : ",Owner.IsOfficer)
fmt.Println("IsTenPercentOwner : ",Owner.IsTenPercentOwner)
fmt.Println("IsOther : ",Owner.IsOther)
fmt.Println("SecurityTitleValue : ",Owner.SecurityTitleValue)
fmt.Println("TransactionDatevalue : ",Owner.TransactionDatevalue)
fmt.Println("TransactionFormType : ",Owner.TransactionFormType)
fmt.Println("TransactionCode : ",Owner.TransactionCode)
fmt.Println("EquitySwapInvolved : ",Owner.EquitySwapInvolved)
fmt.Println("TransactionSharesValue : ",Owner.TransactionSharesValue)
fmt.Println("TransactionPricePerShareValue : ",Owner.TransactionPricePerShareValue)
fmt.Println("TransactionPricePerSharefootnoteId : ",Owner.TransactionPricePerSharefootnoteId)
fmt.Println("TransactionAcquiredDisposedCodeValue : ",Owner.TransactionAcquiredDisposedCodeValue)
fmt.Println("Footnote.Footnote : ",Owner.Footnote.Footnote)
fmt.Println("OwnerSignaturesignatureName : ",Owner.OwnerSignaturesignatureName)
fmt.Println("OwnerSignaturesignatureDate : ",Owner.OwnerSignaturesignatureDate)
}
type Ownershipdocs struct{
SchemaVersion string `xml:"schemaVersion"`
DocumentType string `xml:"documentType"`
PeriodOfReport string `xml:"periodOfReport"`
IssuerCik string `xml:"issuer>issuerCik"`
IssuerName string `xml:"issuer>issuerName"`
IssuerTradingSymbol string `xml:"issuer>issuerTradingSymbol"`
RptOwnerCik string `xml:"reportingOwner>reportingOwnerId>rptOwnerCik"`
RptOwnerName string `xml:"reportingOwner>reportingOwnerId>rptOwnerName"`
RptOwnerStreet1 string `xml:"reportingOwner>reportingOwnerAddress>rptOwnerStreet1"`
RptOwnerCity string `xml:"reportingOwner>reportingOwnerAddress>rptOwnerCity"`
RptOwnerState string `xml:"reportingOwner>reportingOwnerAddress>rptOwnerState"`
RptOwnerZipCode string `xml:"reportingOwner>reportingOwnerAddress>rptOwnerZipCode"`
IsDirector string `xml:"reportingOwner>reportingOwnerRelationship>isDirector"`
IsOfficer string `xml:"reportingOwner>reportingOwnerRelationship>isOfficer"`
IsTenPercentOwner string `xml:"reportingOwner>reportingOwnerRelationship>isTenPercentOwner"`
IsOther string `xml:"reportingOwner>reportingOwnerRelationship>isOther"`
SecurityTitleValue string `xml:"nonDerivativeTable>nonDerivativeTransaction>securityTitle>value"`
TransactionDatevalue string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionDate>value"`
TransactionFormType string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionCoding>transactionFormType"`
TransactionCode string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionCoding>transactionCode"`
EquitySwapInvolved string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionCoding>equitySwapInvolved"`
TransactionSharesValue string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionAmounts>transactionShares>value"`
TransactionPricePerShareValue string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionAmounts>transactionPricePerShare>value"`
TransactionPricePerSharefootnoteId string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionAmounts>transactionPricePerShare>footnoteId"`
TransactionAcquiredDisposedCodeValue string `xml:"nonDerivativeTable>nonDerivativeTransaction>transactionAmounts>transactionAcquiredDisposedCode>value"`
SharesOwnedFollowingTransactionValue string `xml:"nonDerivativeTable>nonDerivativeTransaction>ownershipNature>directOrIndirectOwnership>value"`
Footnote Footnotes `xml:"footnotes"`
OwnerSignaturesignatureName string `xml:"ownerSignature>signatureName"`
OwnerSignaturesignatureDate string `xml:"ownerSignature>signatureDate"`
}
type Footnotes struct{
ID string `xml:"id,attr"`
Footnote string `xml:"footnote"`
}

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
刪除 上的innerxml
標(biāo)記DocumentType
,并為其指定要匹配的元素的名稱 ( xml:"documentType"
)。從xml 庫(kù)文檔:
如果結(jié)構(gòu)具有類型為
[]byte
或string
帶有標(biāo)記“,innerxml”的字段,則Unmarshal
累積嵌套在該字段中元素內(nèi)的原始 XML。其余規(guī)則仍然適用。
您不需要存儲(chǔ)未處理的 XML。您正在尋找該字段的值,因此您不需要標(biāo)簽。
*edit:就此而言,",innerxml"
標(biāo)簽也會(huì)破壞SchemaVersion
字段——沒有匹配的元素(因?yàn)?code>SchemaVersion是字符串),它存儲(chǔ)整個(gè)文檔。
- 2 回答
- 0 關(guān)注
- 189 瀏覽
添加回答
舉報(bào)