В Python 3.x
просто используйте get(attr_name)
для вашего объекта тега, который вы используете с помощью find_all
:
xmlData = None
with open('conf//test1.xml', 'r') as xmlFile:
xmlData = xmlFile.read()
xmlDecoded = xmlData
xmlSoup = BeautifulSoup(xmlData, 'html.parser')
repElemList = xmlSoup.find_all('repeatingelement')
for repElem in repElemList:
print("Processing repElem...")
repElemID = repElem.get('id')
repElemName = repElem.get('name')
print("Attribute id = %s" % repElemID)
print("Attribute name = %s" % repElemName)
в отношении файла XML conf//test1.xml
, который выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<singleElement>
<subElementX>XYZ</subElementX>
</singleElement>
<repeatingElement id="11" name="Joe"/>
<repeatingElement id="12" name="Mary"/>
</root>
печатает:
Processing repElem...
Attribute id = 11
Attribute name = Joe
Processing repElem...
Attribute id = 12
Attribute name = Mary
Но я получаю сообщение об ошибке "! [отклонено] "и что-то о" без перемотки вперед "
Это потому, что Git не может объединить изменения из веток в ваш текущий мастер. Допустим, вы проверили ветку master
и хотите выполнить слияние в удаленной ветке other-branch
. Когда вы делаете это:
$ git pull origin other-branch
Git в основном делает следующее:
$ git fetch origin other-branch && git merge other-branch
То есть, pull
- это просто fetch
, за которым следует слияние
. Однако, когда pull
-ing, Git будет только объединить other-branch
, если он сможет выполнить быстрое слияние вперед . Слияние с перемоткой вперед - это слияние, при котором глава ветви, в которую вы пытаетесь слиться, является прямым потомком главы ветви, которую вы хотите объединить. Например, если у вас есть это дерево истории, то слияние other-branch
приведет к слиянию с быстрой перемоткой вперед:
O-O-O-O-O-O
^ ^
master other-branch
Однако это не будет слияние с перемоткой вперед :
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Чтобы решить вашу проблему, сначала выберите удаленную ветку:
$ git fetch origin other-branch
Затем слейте ее с вашей текущей веткой (я предполагаю, что это master
) и исправьте любое слияние конфликты:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!
Просто явно отслеживайте удаленные ветки и простой git pull
будет делать именно то, что вы хотите:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
Последняя является локальной операцией.
Или даже больше подходит для документации GitHub по разветвлению :
git branch -f new_local_branch_name upstream/remote_branch_name
Вы можете перетащить ветку в ветку с помощью следующих команд.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Когда вы находитесь в главной ветке вы также можете сначала проверить ветку, например:
git checkout -b xyz
Это создает новую ветку, «xyz», от мастера и напрямую проверяет ее.
Затем вы делаете:
git pull origin xyz
Это вытягивает новую ветку в местное отделение xyz
.
Я не уверен, что полностью понимаю проблему, но извлечение существующей ветки выполняется следующим образом (по крайней мере, у меня это работает :)
git pull origin BRANCH
Предполагается, что ваша локальная ветка создана вне происхождения / ФИЛИАЛ.