Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails3XMLBuilder:没有数据时不返回XML元素_Ruby On Rails_Xml_Xml Builder - Fatal编程技术网

Ruby on rails Rails3XMLBuilder:没有数据时不返回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

当字段中有数据时,我会得到这种漂亮的XML:

<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