0
我正在嘗試讀取XML文件(configs.xml
)的內容並將其插入到另一個XML文件(workspace.xml
)中間的某個位置。來自XML代碼的尖括號用HTML代碼代替?
這是代碼:
require "nokogiri"
workspace = File.open("workspace.xml")
xml = Nokogiri::XML(workspace)
workspace.close
# Add new configs
configs = File.read("configs.xml")
xml.search('component[name="RunManager"]').each do |node|
node.content=configs
end
puts xml
輸出看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayoutPreviewToolWindow">
<option name="state">
<GlobalState/>
</option>
</component>
<component name="RunManager" selected="Android Application.Run on device">
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
<module name="" />
<option name="TESTING_TYPE" value="0" />
<option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
<option name="METHOD_NAME" value="" />
<option name="CLASS_NAME" value="" />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false"/>
<component name="SliceManager" selected="Android Application.Run on device">
<option name="analysisUIOptions">
<AnalysisUIOptions/>
</option>
</component>
</project>
正如你所看到的,在中間插入的內容與HTML代碼< >
全部換成角括號< >
,我不知道爲什麼,儘管我懷疑這必須用編碼做些什麼。
什麼是最有趣的是,如果(也被插入和修改的一個)只用於打印的configs.xml
內容則如預期輸出:
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
<option name="TESTING_TYPE" value="0" />
<option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
<option name="METHOD_NAME" value="" />
// ............
</configuration>