해결된 질문
작성
·
32
1
수학/과학이나 알고리즘과는 달리
업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.
다시 말씀드리지만, 질문을 자주자주 남겨주세요.
저도 최대한 빠르게 회신 드리겠습니다.
====================================
안녕하세요~
막히는 부분이 있을 때마다 항상 많은 도움을 받고 있습니다.
예전에 누름틀의 메모를 가져오는 방법에 문의하고 잘 활용하고 있는데
누름틀의 개수가 많아지면 생각보다 조회하는 시간이 오래 걸려서 다시 질문을 합니다.
누름틀 필드로 커서를 이동한 후 내용을 추출하는 방법 말고 다른 방법이 없을까요??
누름틀의 필드이름을 알면 누름틀 안의 안내문, 메모 내용을 추출하는 방법이 궁금합니다.
답변 1
1
민수님 안녕하세요?
직접적인 메서드는 없지만, xml 파싱하듯 필드 정보를 가져올 수 있습니다.
예를 들어 아래는
[
{"name": 필드1이름, "direction": 필드1안내문, "memo": 필드1메모},
{"name": 필드2이름, "direction": 필드2안내문, "memo": 필드2메모},
...,
]
방식으로 리턴하는 코드입니다.
중간에 문자열 가공이 귀찮아서 정규식을 써버렸는데,
더 깔끔한 방법으로 바꾸면 좋을 것 같습니다...ㅠ
import xml.etree.ElementTree as ET
import re
from pyhwpx import Hwp
hwp = Hwp()
txt = hwp.GetTextFile("HWPML2X")
root = ET.fromstring(txt)
results = []
for field in root.findall(".//FIELDBEGIN"):
name_value = field.attrib.get("Name")
command = re.split(r"(Clickhere:set:\d+:Direction:wstring:\d+:)|( HelpState:wstring:\d+:)", field.attrib.get("Command")[:-2])
results.append({"name": name_value, "direction": command[3], "memo": command[-1]})
코드 쓰기 귀찮으실까봐..pyhwpx
최신버전(0.41.8)에 hwp.get_field_info()
를 추가해 두었습니다.
혹시 다른 방식으로 작동하길 원하시면 댓글로 제안해주시기 바랍니다.
행복한 하루 되세요^^
제가 원했던 대로 잘 작동합니다.
항상 정성스럽게 답변해 주셔서 감사합니다!!