我正在尝试使用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>```
我无法产生弹性菲尔德。我正在尝试以下代码。
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>
我无法在映射到字段后生成值。您能否建议您在代码中需要更新的内容,以便以正确格式生成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>
是您要寻找的吗?