如何使用 nokogiri 生成器生成 xml
How to generate xml using nokogiri builder
我正在尝试在 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>
是您要找的吗?
我正在尝试在 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>
是您要找的吗?