2010-02-09 4 views
2

나는 파이썬에서 XML 태그에 속성을 추가하는 방법을 찾고있다. 또는 예를 들어, 나는 다음과 같은 XML 파일이 새로운 특성을 가진 새로운 태그를 만들려면 다음Python에서 xml 태그의 속성을 검색하는 방법은 무엇입니까?

<types name='character' shortName='chrs'> 
.... 
... 

</types> 

을하고 나는 그것을이처럼 보이게하는 속성을 추가 할 :

<types name='character' shortName='chrs' fullName='MayaCharacters'> 
.... 
... 
</types> 

방법 나는 파이썬으로 그렇게합니까? 그건 그렇고. 나는 이것을 위해 파이썬과 minidom을 사용한다. 도와주세요. 미리 감사드립니다.

답변

5

당신은 각각의 Node 개체의 attributes 속성을 사용할 수 있습니다. 예를 들어

:

from xml.dom.minidom import parseString 
documentNode = parseString("<types name='character' shortName='chrs'></types>") 
typesNode = documentNode.firstChild 

# Getting an attribute 
print typesNode.attributes["name"].value # will print "character" 

# Setting an attribute 
typesNode.attributes["mynewattribute"] = u"mynewvalue" 
print documentNode.toprettyxml() 

마지막 print 문을 출력이 XML 문서 :

<?xml version="1.0" ?> 
<types mynewattribute="mynewvalue" name="character" shortName="chrs"/> 
+0

+1 나는 물건을 단순화하는 길을 좋아합니다. 너는 책 쓰기 시작해야 해! –

1

내가 this great article에서 파이썬의 XML 파싱을 배웠습니다. 속성 섹션은 링크 할 수 없지만 해당 페이지에서 "속성"만 검색하면 필요한 정보를 찾을 수 있습니다.

그러나 짧은

는 (말했다 페이지에서 도난 니펫) :

>>> building_element.setAttributeNS("http://www.boddie.org.uk/paul/business", "business:name", "Ivory Tower") 
>>> building_element.getAttributeNS("http://www.boddie.org.uk/paul/business", "name") 
'Ivory Tower' 

당신은 아마 당신이 그들을 필요로하지 않는 코드 청소기를 만들기 위해, 네임 스페이스의 처리를 건너 뛰려면.

관련 문제