노드 집합 업데이트하는 방법 :나는 다음과 같은 XML에 한 번 더 <code><EventRouter></code> 요소를 추가하려고
<EventRouters>
<EventRouter id="Important Events to Log File" class="com.cyclonecommerce.events2.router.LogFileRouter" active="true">
<Parameters file="../logs/%nodeName%_events.log"
rollOnStart="false" autoFlush="true"
maxFileSize="2M" maxBackupFiles="5"/>
<MetadataProcessorListRef ref="Messaging"/>
<EventFilterRef ref="Important"/>
</EventRouter>
<EventRouter id="Message Detail to Log File" class="com.cyclonecommerce.events2.router.LogFileRouter" active="false">
<Parameters file="../logs/%nodeName%_message_detail.log"
rollOnStart="true" autoFlush="true"
maxFileSize="2M" maxBackupFiles="5"/>
<MetadataProcessorListRef ref="Messaging"/>
<EventFilterRef ref="Message Detail"/>
</EventRouter>
</EventRouters>
나는 노드 세트에 노드를 추가 할 수 있어요하지만 XML을 저장 한 후 내가받지 오전 업데이트를 XML 내가 원하는 :
require 'nokogiri'
if File.exist?('a.xml')
data = File.read("a.xml")
end
doc = Nokogiri::XML.parse data
doc2=doc.xpath("//EventRouters/EventRouter")
event_router = Nokogiri::XML::Node.new("EventRouter",doc)
event_router['id'] = "some"
param_node = Nokogiri::XML::Node.new("Parameters",doc)
param_node.content = "some content"
event_router << param_node
doc2<< event_router
File.open('test.xml', 'w') do |file|
file.print doc.to_xml
end
은 무엇을'session_node '? "[mcve]"를 읽으십시오. 당신의 코드는 여러분이 묻고있는 문제를 보여줄 필요가 있습니다. –
원하는 것을 보여주기 위해 XML 샘플을 _bare minimum_으로 줄이십시오. 그 이상으로 질문에주의를 산만하게합니다. 또한이를 기반으로 출력물의 예를 보여줍니다. Stack Overflow는 온라인 참고 자료이며 앞으로 다른 사람들이이 문제를 해결할 수 있도록 도와주는 것이므로 명확하고 완전한 질문이 중요합니다. –
@ theTinMan : 코드를 수정했습니다. – muski