Python Use Python para manipular archivos xmind

Use Python para manipular archivos xmind

por: Guest QQ : 1033553122

 

 

Entorno de prueba

Win10

Python 3.5.4

XMind-1.2.0.tar.gz

Dirección de descarga:

https://files.pythonhosted.org/packages/7c/8c/e13a82fa9b0394c0d58248196d7d51d7274407cdebc1df36b76034ab990d/XMind-1.2.0.tar.gz

 

Crear y actualizar archivos xmind

#! / usr / bin / env python

# - * - codificación: utf-8 - * -

 

importar xmind

desde xmind.core.const import TOPIC_DETACHED

desde xmind.core.markerref import MarkerId

de xmind.core.topic import TopicElement

 

# Carga tiene XMind archivo, y si no es así, entonces el nuevo

libro de trabajo = xmind.load ( 'D: \\ example \\ example.xmind' )

 

= Workbook.getPrimarySheet FIRST_SHEET ()  # Obtener el primer lienzo

first_sheet.setTitle ( 'primera hoja' )   # establecer el nombre del lienzo

= Root_topic1 first_sheet.getRootTopic ()  # Obtener el tema central del lienzo, crea un nuevo lienzo en blanco para crear un tema central por defecto

root_topic1.setTitle ( 'Ejemplo Tema' )   # establecer el nombre del tema

 

 

 

= Root_topic1.addSubTopic sub_topic1 () # crear un sub-tema, y establecer el nombre

sub_topic1.setTitle ( "primer subtema" )

 

sub_topic2 = root_topic1.addSubTopic ()

sub_topic2.setTitle ( "segundo subtema" )

 

sub_topic3 ​​= root_topic1.addSubTopic ()

sub_topic3.setTitle ( "tercer subtema" )

 

# Además de crear nuevos subtemas, también puede crear temas gratuitos ( nota : solo el tema central admite la creación de temas gratuitos )

detached_topic1 = root_topic1.addSubTopic (topics_type = TOPIC_DETACHED)

detached_topic1.setTitle ( "tema separado" )

detached_topic1.setPosition (0, 30)

 

# Crear un tema sub-sub-tema

sub_topic1_1 = sub_topic1.addSubTopic ()

sub_topic1_1.setTitle ( "Yo también soy un subtema" )

 

= Workbook.createSheet SECOND_SHEET, ()   # crear un nuevo lienzo

second_sheet.setTitle ( 'Segunda hoja' )

root_topic2 = second_sheet.getRootTopic ()

root_topic2.setTitle ( 'Nodo raíz' )

 

#Utilice otras formas de crear elementos temáticos secundarios

topic1 = TopicElement (ownerWorkbook = workbook)

topic1.setTopicHyperlink (first_sheet.getID ()) # crear un enlace desde el primer tema de la tela es un lienzo

topic1.setTitle ( "redirección a la primera hoja" )

 

topic2 = TopicElement (ownerWorkbook = workbook)

topic2.setTitle ( "tema con un hipervínculo url" )

topic2.setURLHyperlink ( "https://www.cnblogs.com/shouke"# subtemas establecer URL de hipervínculo

 

topic3 ​​= TopicElement (ownerWorkbook = workbook)

topic3.setTitle ( "tercer nodo" )

topic3.setPlainNotes ( "Notas para el este tema"# Conjunto Nota a subtema (F4 en XMind)

topic3.setTitle ( "tema con \ n notas" )

 

topic4 = TopicElement (ownerWorkbook = workbook)

(topic4.setFileHyperlink : "d \\ Ejemplo \ Demo.jpg"# archivo subtemas hipervínculo ajustes

topic4.setTitle ( "tema con un archivo" )

 

topic1_1 = TopicElement (ownerWorkbook = libro de trabajo)

topic1_1.setTitle ( "subtema" )

topic1_1.addLabel ( "Una etiqueta"# etiquetas Añadir para subtema ( XMind Oficial sólo puede Un Una etiqueta )

# Add subtemas al tema no central

topic1.addSubTopic (topic1_1)

 

topic1_1_1 = TopicElement (ownerWorkbook = workbook)

topic1_1_1.setTitle ( "el tema puede agregar varios marcadores" )

#Agregar etiquetas a temas

topic1_1_1.addMarker (MarkerId.starBlue)

topic1_1_1.addMarker (MarkerId.flagGreen)

# Añadir el subtema de subtemas

topic1_1.addSubTopic (topic1_1_1)

 

topic2_1 = TopicElement (ownerWorkbook = workbook)

topic2_1.setTitle ( "el tema puede agregar varios comentarios" )

# Añadir comentarios al tema

topic2_1.addComment ( "¡Soy un comentario!" )

topic2_1.addComment (content = "¡Hola comentario!" , author = 'devin' )

 

topic2.addSubTopic (topic2_1)

 

#Agregue elementos del tema secundario al tema central

root_topic2.addSubTopic (topic1)

root_topic2.addSubTopic (topic2)

root_topic2.addSubTopic (topic3)

root_topic2.addSubTopic (topic4)

 

# subtemas que atraviesan

topics = root_topic2.getSubTopics ()

para índice, tema en enumerar (temas):

    topic.addMarker ( "de prioridades" + str (index + 1)) # al tema de la etiqueta ( icono de prioridad )

 

# Subtema 1 y los subtemas 2 para crear una relación

second_sheet.createRelationship (topic1.getID (), topic2.getID (), "prueba de relación" )

 

# xmind.save (libro de trabajo) #Guarde y sobrescriba el archivo original

 

# Sólo guardar content.xml

# xmind.save (workbook = workbook, path = "d: \\ example \\ other.xmind", only_content = True) # No cambie el archivo original, guárdelo como otro archivo xmind

 

# Sólo guardar content.xml , comments.xml , styles.xml

# xmind.save (workbook = workbook, path = "d: \\ example \\ other.xmind", excepto_revisions = True) #No cambie el archivo original, guárdelo como otros archivos xmind

 

# Guardar todo, las revisiones excepto para ahorrar espacio ( recomendado )

# xmind.save (workbook = workbook, path = "d: \\ example \\ other.xmind", excepto_revisions = True) #No cambie el archivo original, guárdelo como otros archivos xmind

 

# Guardar todo el contenido, y guardar como otros XMind archivos (recomendado)

xmind.save (Workbook = libro de trabajo, path = 'D: \\ Ejemplo \\ other.xmind'# no cambian el archivo original, guardar como otro XMind equivalentes de archivos xmind.save (libro, 'd: \\ ejemplo \\ exam.xmind ')

 

 

 

Resultado de la operación

 

 

 

 

 

 

 

 

Analizar archivo xmind

#! / usr / bin / env python

# - * - codificación: utf-8 - * -

 

importar json

importar xmind

tubos de importación

 

def dict_to_prettify_json (datos):

    print (json.dumps (datos, sangría = 4, separadores = ( ',' , ':' )))

 

 

def custom_parse_xmind (libro de trabajo):

    elementos = {}

 

    def _echo (etiqueta, elemento, sangría = 0):

        title = element.getTitle ()

        elementos [element.getID ()] = título

        print ( ' \ t ' * indent, tag, ':' , pipes.quote (title))

 

    def dump_sheet (hoja):

        root_topic = sheet.getRootTopic ()

        _echo ( 'RootTopic' , root_topic, 1)

 

        para el tema en root_topic.getSubTopics () o []:

            _echo ( 'AttachedSubTopic' , tema, 2)

 

        para el tema en root_topic.getSubTopics (xmind.core.const.TOPIC_DETACHED) o []:

            _echo ( 'DetachedSubtopic' , tema, 2)

 

        para rel en sheet.getRelationships ():

            id1, id2 = rel.getEnd1ID (), rel.getEnd2ID ()

            print ( 'Relación: [% s] -> [% s]' % (elements.get (id1), elements.get (id2)))

 

    # Atravesando el lienzo

    para hoja en workbook.getSheets ():

        _echo ( 'Hoja' , hoja)

        dump_sheet (hoja)

 

# Carga tiene XMind archivo, y si no es así, entonces el nuevo

libro de trabajo = xmind.load ( 'D: \\ example \\ example.xmind' )

Imprimir (workbook.getData ()) # get los enteros XMind de datos ( en la forma de un diccionario )

dict_to_prettify_json (workbook.getData ())

 

# Obtener datos en un lienzo ( en forma de un diccionario )

first_sheet = workbook.getPrimarySheet ()

dict_to_prettify_json (first_sheet.getData ())

 

# Obtener un tema de datos ( en la forma de un diccionario )

root_topic = first_sheet.getRootTopic ()

dict_to_prettify_json (root_topic.getData ())

 

# Obtener datos Comentarios

commentsbook = workbook.commentsbook

print (commentsbook.getData ())

 

# Resolución personalizada

custom_parse_xmind (libro de trabajo)

 

 

Supongo que te gusta

Origin www.cnblogs.com/shouke/p/12685235.html
Recomendado
Clasificación