有沒有一種方法可以將字符串傳遞給REXML::Element
,以便將字符串解析爲XML,並將找到的元素插入到目標中?REXML:等價的JavaScript-DOM的.innerHTML =
1
A
回答
1
這將有助於如果你能提供一個例子來進一步說明你腦子裏到底是什麼。
使用JS innerHTML,您可以在一次插入中插入文本或HTML,並立即在HTML文檔中顯示更改。我知道如何在REXML中執行此操作的唯一方法是分別執行插入內容/元素和保存/重新加載文檔的步驟。
要修改特定REXML元素的文本,您可以使用text =()方法。
#e represents a REXML Element
e.text = "blah"
如果你想插入另一個元素,你必須使用add_element()方法。
#e represents a REXML Element
e.add_element('blah') #adds <blah></blah> to the existing element
b = e.get_elements('blah') #empty Element named "blah"
b.text('some text') #add some text to Element blah
然後保存XML文檔的變化。 ruby-doc.org/REXML/Element
-1
text()
將返回內部內容作爲字符串
1
您可以擴展REXML :: Element類以包含innerHTML,如下所示。
require "rexml/element"
class REXML::Element
def innerHTML=(xml)
require "rexml/document"
self.to_a.each do |e|
self.delete e
end
d = REXML::Document.new "<root>#{xml}</root>"
d.root.to_a.each do |e|
case e
when REXML::Text
self.add_text e
when REXML::Element
self.add_element e
else
puts "ERROR"
end
end
xml
end
def innerHTML
ret = ''
self.to_a.each do |e|
ret += e.to_s
end
ret
end
end
然後,您可以像在javascript中那樣使用innerHTML(或多或少)。
require "rexml/document"
doc = REXML::Document.new "<xml><alice><b>bob</b><chuck>ch<u>u</u>ck</chuck></alice><alice/></xml>"
c = doc.root.get_elements('//chuck').first
t = c.innerHTML
c.innerHTML = "#{t}<david>#{t}</david>"
c = doc.root.get_elements('//alice').last
c.innerHTML = "<david>#{t}</david>"
doc.write($stdout, 2)
相關問題
- 1. JQuery中innerHTML的等價物是什麼?
- 2. 尋找getElementById和innerHTML的PHP等價物
- 3. 不等於不依賴於innerHTML的html_entity_decode的javascript等價物?
- 4. 等價的.send()
- 5. 獲取價值/的innerHTML /文本
- 6. Python的等價物@
- 7. Python的等價性?
- 8. os.getpardir()的等價物?
- 9. Prolog的等價算
- 10. Stata的宏等價
- 11. Fortran中的「等價」
- 12. document.getElementsByClassName的等價物
- 13. C++等價的.split()
- 14. 的Win32等價的getuid()的
- 15. 與REXML相關的錯誤
- 16. Ruby REXML混淆
- 17. REXML和編碼
- 18. python等價的Matlab的resample()
- 19. OrderedDict的list.index()的等價物?
- 20. Ruby的等價ASP.NET的Application_Start?
- 21. Unix的pdfinfo的等價物
- 22. Java的等價VB的Request.InputStream
- 23. Db的List.exists的等價物
- 24. Python的等價Java的compareTo()
- 25. 的JavaScript等價的PHP mktime
- 26. 等價的C C++ STL的
- 27. simplexml_load_string等價的Python/Django的
- 28. Python的等價Ruby的'method_missing'
- 29. 的Python gspread:getLastRow()的等價
- 30. CCLayer的-viewDidAppear的等價物?
我發佈了這個問題已經有幾個月了,但我想我想要的基本上是JS的innerHTML功能。我有一些外部XML,我只想將它們轉儲到現有文檔中,而不必先解析它。呃,好吧。 – rampion
不用擔心。如果您正在考慮將外部XML轉儲到現有的HTML文檔中,那麼Javascript將成爲一種可行的方式[w3schools.com](http://www.w3schools.com/dom/dom_loadxmldoc.asp)。否則,您將創建一個新的REXML文檔,方法是將字符串傳遞給__doc = Document.new(' ...')__然後使用__doc.write(output = File.open('blah.xml', 'W'))__ –
rbnewb