個別の<order/>
要素のリストを含むXMLファイルがあります。この1つのXMLファイルを複数のファイルに分割したいと思います。それぞれのファイルには1つのオーダーが含まれています。サブ要素の外側XMLを保持するにはどうすればよいですか?
例入力ファイル:
<orders>
<order order-id="123">
<line-item product-id="ABC">ABC</line-item>
</order>
<order order-id="456">
<line-item product-id="DEF">DEF</line-item>
</order>
</orders>
理想出力:
オーダー123.xml:
<order order-id="123"> <line-item product-id="ABC">ABC</line-item> </order>
オーダー456.xml:
<order order-id="456"> <line-item product-id="DEF">DEF</line-item> </order>
この段階では、各注文の詳細を構造体にアンマーシャリングすることには関係しません。私はそれぞれのファイルの正確なコピーをそれぞれの<order/>
ノードに入れたいだけです。
Iは、xml:",innerxml"
like thisを使用して、この数のバリエーションを試してみました:
type OrdersRaw struct {
Orders []OrderRaw `xml:"order"`
}
type OrderRaw struct {
Order string `xml:",innerxml"`
}
上記のコードでの問題は、各Order
値は、内側XML(<line-item/>
始まる)を含むが、ラッピングを含まないことです<order/>
タグ。
xml:",outerxml"
タグがあれば理想的です。
手書きのXML(例:<order order-id="123">
)で内側のXMLを手作業で連結するような嫌なことは避けようとしています。あなたのOrderRaw
の
regexpだけで実行できるようです。 – Uvelichitel
正規表現によるXMLの解析?ただあなたが_can_あなたが_should_を意味するわけではありません。私は[そのようなハックなソリューション](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)を避けようとしています。 –
シンプルなケースでは、regexpはXML Encoder Decoderパイプよりも速くて読みやすくなります – Uvelichitel