문제

XML 파일을 변경하는 데 무엇을 사용 하시겠습니까?

내 문제는 사용자 인터페이스를 설명하는 몇 가지 거대한 손으로 편집 한 XML-Files가 있다는 것입니다. 이제 몇 가지 속성을 다른 언어로 번역해야합니다.

Python + ElementTree를 사용 하여이 작업을 시도했지만 공백이나 의견을 보존하지 않았습니다.

XSLT가 비슷한 질문에 대해 제안되는 것을 보았지만 각 속성에 대해 논리와 조회를해야하기 때문에이 경우 대안이라고 생각하지 않습니다.

각 요소의 속성 순서가 보존되면 바람직하지만 변경된 순서를 견딜 수 있습니다.

도움이 되었습니까?

해결책

모든 DOM 조작 모듈은 귀하의 요구에 적합해야합니다. 레이아웃은 단지 텍스트 데이터이므로 DOM의 텍스트 노드로 표시됩니다.

>>> from xml.dom.minidom import parseString
>>> dom = parseString('''\
... <message>
...   <text>
...     Hello!
...   </text>
... </message>''')
>>> dom.childNodes[0].childNodes
[<DOM Text node "u'\n  '">, <DOM Element: text at 0xb765782c>, <DOM Text node "u'\n'">]
>>> text = dom.getElementsByTagName('text')[0].childNodes[0]
>>> text.data = text.data.replace(u'Hello', u'Hello world')
>>> print dom.toxml()
<?xml version="1.0" ?><message>
  <text>
    Hello world!
  </text>
</message>

다른 팁

XSLT 프로세서를 사용하는 경우 XT, 그런 다음 필요한 임의의 변환을 수행 할 수있는 Java에서 확장 방법을 작성할 수 있습니다.

그렇게 말하면서 나는 파이썬을 사용했습니다 XML.DOM.MINIDOM 이러한 종류의 변환을 위해 성공적으로 모듈. 그것은 공백과 레이아웃을 보존합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top