python проблема форматирования при разборе дочернего элемента - PullRequest
4 голосов
/ 24 января 2020

Я анализирую файл xml, в котором перечислены некоторые серверы

пример xml для 2 серверов:

<cluster-information>
    <clustering-available>true</clustering-available>
    <clustered>true</clustered>
    <node>
      <id>SomeIDnum</id>
      <address>/someIP:port</address>
      <local>false</local>
    </node>
    <node>
      <id>SomeIDnum</id>
      <address>/someIP:port</address>
      <local>false</local>
    </node>
  </cluster-information>

Я использую следующее для получения идентификатора и адреса

cluster=myroot.find('cluster-information/clustered')
if cluster.text == 'true':
    print("|Cluster is "+cluster.text+" |")
    nodes=myroot.find('cluster-information')
    for x in nodes.findall('node'):
        id=x.find('id')
        ip=x.find('address')
        print("Node:"+id.text)
        print("IP "+ip.text)
    print("|")

Результат:

| Кластер верен | Узел: someID IP / xxxx: порт Узел: someotherID IP / xxxx: порт |

Мне нужно, чтобы выходные данные выглядели так: | Кластер верен | Узел: someID IP / xxxx: порт Узел: someotherID IP / xxxx: port |

В основном мне нужно удалить первый символ новой строки, созданный для l oop.

1 Ответ

2 голосов
/ 24 января 2020

Мне нужно удалить первую новую строку, созданную для l oop.

То, что первая новая строка не созданная форма for для l oop - оно генерируется

    print("|Cluster is "+cluster.text+" |")

перед l oop. Чтобы удалить его, измените на

    print("|Cluster is "+cluster.text+" |", end="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...