我正在尝试使用rails中的nokogiri构建一个xml文件。 xml具有以下格式。
<ServiceIncident>
<Incident>
<Abstract>linux_bpac_endpoint_scan_v01</Abstract>
<Description>host=endpoint01.t00.com</Description>
<FlexFields>
<FlexField mappedTo="event_class">1</FlexField>
<FlexField mappedTo="ITEM">t00-bpac:endpoint01.t00.com:linux_bpac_endpoint_scan_v01</FlexField>
<FlexField mappedTo="sr_params">{"host":"endpoint01.t00.com"}</FlexField>
<FlexField mappedTo="sr_id">{"REQUEST_ID":"100682"}</FlexField>
<FlexField mappedTo="sr_tool">bpac</FlexField>
<FlexField mappedTo="service_state">1</FlexField>
<FlexField mappedTo="host_state">1</FlexField>
<FlexField mappedTo="service_type">SR</FlexField>
</FlexFields>
</Incident>
</ServiceIncident>```
我无法生成FlexField。我正在尝试下面的代码。
require 'nokogiri'
builder = Nokogiri::XML::Builder.new do |xml|
xml.ServiceIncident {
xml.Incident {
xml.FlexFields {
xml.FlexField("mappedTo" => "event_class") { '1' }
}
}
}
end
puts builder.to_xml
这就是我得到的。
<?xml version="1.0"?>
<ServiceIncident>
<Incident>
<FlexFields>
<FlexField mappedTo="event_class"/>
</FlexFields>
</Incident>
</ServiceIncident>
我无法在mappedTo字段后生成值。能否请您在代码中建议需要更新的内容,以便以正确的格式生成xml。
以下Nokogiri代码:
builder = Nokogiri::XML::Builder.new do |xml|
xml.ServiceIncident {
xml.Incident {
xml.FlexFields {
xml.FlexField('1', "mappedTo" => "event_class")
}
}
}
end
产品:
<?xml version=\"1.0\"?>
<ServiceIncident>
<Incident>
<FlexFields>
<FlexField mappedTo=\"event_class\">1</FlexField>
</FlexFields>
</Incident>
</ServiceIncident>
这是你在找什么?