2017-11-24 23 views
0

간단한 질문. 미안 기본이지만, 나는 인터넷 검색을 시도했지만 유용한 아무것도 얻지 못했습니다. 여기 내 쿼리입니다. 내가 2 LXML의 etree이, PFB XML-1 :lxml을 사용하여 부모 태그와 그 자식 태그를 새로운 etree에 덧붙임

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="1"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
    <child c="2"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

XML-2 :

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="3"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

최종 결과 :

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="3"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
    <child c="1"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

지금 내가와 XML-2 추가 할 " child c = '1' "요소와 XML-1의 자식 요소를 비교합니다. 맞아, 나는 그 자식을 루핑하고 XML-2를 추가하고있다. 루프없이 XML-2를 추가 할 수있는 방법이 있습니까? 나는 한 가지를 의미한다. 미리 감사드립니다. 내가 뭘 시도했는지 묻지 마. 내 현재 코드 (요소를 통해 반복) 잘 작동합니다. 그리고 그것이 가능할지는 모르겠다.

+0

후 최종 결과를 – RomanPerekhrest

+0

@RomanPerekhrest 그냥 추가 최종 결과가 어떻게 나타나야하는지. – Arasan

+0

* (반복 요소를 통해 반복 - 루프 할 필요없이'find' 메소드 만 – RomanPerekhrest

답변

0

싫어하는 사람, 그냥 deepcopy에 대해 발견했습니다. 당신이 lxml.etree의 다른 위치에 요소를 복사 할 경우

는, 파이썬의 표준 라이브러리에서 복사 모듈을 사용하여 독립적 인 딥 카피 만드는 것이 좋습니다 :

>>> from copy import deepcopy 

>>> element = etree.Element("neu") 
>>> element.append(deepcopy(root[1]))