2011-01-27 1 views
2

Nokogiri는 DOM에 작은 따옴표가있는 경우에도 XML 특성을 큰 따옴표로 저장합니다. 이것은 물론 합법적이지만 DOM이 변경되지 않은 경우에도 파일 내용에 성가신 변화가 발생하므로 diff 및 git과 같은 도구가 어떤 일이 발생했는지 파악하기가 더 어려워집니다.nokogiri는 XML 저장시 속성에 작은 따옴표를 사용할 수 있습니까?

강제로 작은 따옴표를 사용하거나 (수정하지 않은 경우 원본에있는 인용 스타일을 유지하는 것이 좋습니다)?

REXML은 싱글/더블 견적 설정이있다 : 나는 노코 기리 비슷한 아무것도 찾을 수 없습니다

doc.context[:attribute_quote] = :quote 

.

작은 따옴표로 문서를 저장할 수 있습니까?

+0

원본에 있던 인용 스타일이 무엇이든 보관하십시오. _ _ [Nokogiri는 속성 인용 스타일을 유지할 수 있습니까?] (http://stackoverflow.com/q/8424858/405017) – Phrogz

답변

2

답변이 '아니오'인 것처럼 보입니다. 도서관이 현재 쓰여진 것이 아니고 전혀 그렇지 않을 수도 있습니다. 노드의 직렬화의 호출 경로를 추적 :

  • Nokogiri::XML::Node#to_s 전화 to_xml
  • Nokogiri::XML::Node#to_xml 전화 serialize는 (몇 가지 기본 옵션을 설정)
  • Nokogiri::XML::Node#serialize 전화 write_to
  • Nokogiri::XML::Node#write_to 전화 native_write_to
  • Nokogiri::XML::Node#native_write_to 전화 native_write_to, 이는 th와 유사합니다. 입니다 :

&bsp;

def native_write_to(io, encoding, indent_string, options) 
    set_xml_indent_tree_output 1 
    set_xml_tree_indent_string indent_string 
    savectx = LibXML.xmlSaveToIO(IoCallbacks.writer(io), nil, nil, encoding, options) 
    LibXML.xmlSaveTree(savectx, cstruct) 
    LibXML.xmlSaveClose(savectx) 
    io 
end 

그래서, 당신은이 시점에서 libxml의 자비에 있습니다. libxml serialize single quote attributes에 대한 인터넷 검색은 즉시 모든 흡연 총을 켤 수 없습니다.

나는 당신이 file a feature request이어야한다고 생각하고 어떤 종류의 tenderlovin을 볼 수 있습니다. :)

+0

슬프게도 내가 왔어요. 동일한 결론을 얻었고 원래의 응용 프로그램으로 돌아가서 nokogiri를 행복하게 만들기 위해 어디에서나 큰 따옴표 만 사용했습니다. - / – taw