Ruby on rails Rails3XMLBuilder:没有数据时不返回XML元素
当字段中有数据时,我会得到这种漂亮的XML:Ruby on rails Rails3XMLBuilder:没有数据时不返回XML元素,ruby-on-rails,xml,xml-builder,Ruby On Rails,Xml,Xml Builder,当字段中有数据时,我会得到这种漂亮的XML: <DescriptiveDetail> <ProductComposition>00</ProductComposition> <ProductForm>01</ProductForm> <Measure> <MeasureType>01</MeasureType> <MeasureType>198</Meas
<DescriptiveDetail>
<ProductComposition>00</ProductComposition>
<ProductForm>01</ProductForm>
<Measure>
<MeasureType>01</MeasureType>
<MeasureType>198</MeasureType>
<MeasureType>mm</MeasureType>
</Measure>
</DescriptiveDetail>
您是否尝试检查@isbnlist是否为空,如果为空,请使用条件语句迭代所有元素,或者只打印简短/空版本?谢谢您的思考。问题是,@isbnlist中的一些属性会有数据,而有些则不会@isbnlist是Isbn.allWell那么,另一种方法是在每一行检查属性是否有数据:xml.ProductIDType productcode.idtype,除非productcode.idtype.nil?要更新它,必须调用blank?而不是零?阻止标签返回。无返回但为空?什么也不退。非常感谢!这是纯Rails的力量!
<DescriptiveDetail>
<ProductComposition>00</ProductComposition>
</DescriptiveDetail>
<DescriptiveDetail>
<ProductComposition></ProductComposition>
<ProductForm></ProductForm>
<Measure>
<MeasureType></MeasureType>
<MeasureType></MeasureType>
<MeasureType></MeasureType>
</Measure>
</DescriptiveDetail>
<Measure/>
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