0
我得到這個不錯的XML時,有在字段中的數據:軌道3 XML構建:不返回任何XML元素時,有沒有數據
<DescriptiveDetail>
<ProductComposition>00</ProductComposition>
<ProductForm>01</ProductForm>
<Measure>
<MeasureType>01</MeasureType>
<MeasureType>198</MeasureType>
<MeasureType>mm</MeasureType>
</Measure>
</DescriptiveDetail>
當沒有數據,我想獲得這:
<DescriptiveDetail>
<ProductComposition>00</ProductComposition>
</DescriptiveDetail>
但是,相反,我得到這個:
<DescriptiveDetail>
<ProductComposition></ProductComposition>
<ProductForm></ProductForm>
<Measure>
<MeasureType></MeasureType>
<MeasureType></MeasureType>
<MeasureType></MeasureType>
</Measure>
</DescriptiveDetail>
我怎麼不返回的XML元素時,有沒有數據?
(而且只是出於興趣,如果你知道,你怎麼返回自動關閉標籤,例如
<Measure/>
)
這裏是我的XML構建代碼(在滿,相關位在中間):
xml.instruct!(:xml, :encoding => "ISO-8859-1")
xml.ONIXMessage(:release=>"3.0") do
xml.Header do
xml.Sender
xml.SenderName
end
@isbnlist.each do |isbn|
xml.Product do
xml.RecordReference isbn.id
xml.NotificationType isbn.notificationtype
isbn.productcodes.each do |productcode|
xml.ProductIdentifier do
xml.ProductIDType productcode.idtype
xml.IDValue productcode.idvalue
end
end
xml.DescriptiveDetail do
xml.ProductComposition isbn.descriptivedetail_productcomposition_productcomposition
xml.ProductForm isbn.descriptivedetail_productcomposition_productform
isbn.measurements.each do |measurement|
xml.Measure do
xml.MeasureType measurement.descriptivedetail_measure_measuretype
xml.MeasureType measurement.descriptivedetail_measure_measurement
xml.MeasureType measurement.descriptivedetail_measure_measureunitcode
end
end
xml.TitleDetail do
xml.TitleType isbn.descriptivedetail_titledetail_titletype
xml.TitleElement do
xml.TitleElementLevel isbn.descriptivedetail_titledetail_titleelement_titleelementlevel
xml.TitlePrefix isbn.descriptivedetail_titledetail_titleelement_titleprefix
xml.TitleWithoutPrefix isbn.descriptivedetail_titledetail_titleelement_titlewithoutprefix
end
xml
end
end
end
end
end
謝謝你的想法。問題是,@isbnlist中的一些屬性會有數據,有些則不會。 (@isbnlist Isbn.all) – snowangel 2011-06-15 13:16:24
那麼,另一種方法是檢查每行是否屬性有數據: xml.ProductIDType productcode.idtype除非productcode.idtype.nil? – yagooar 2011-06-15 14:51:25
當然!非常感謝@yagooar。 – snowangel 2011-06-15 14:59:50