Я использую dom4j для отсоединения узла, как показано ниже:dom4j отсоединение узла, Jython
<div name="divName">
Some Text Here
<span>Some Text Here</span>
</div>
Я выбора узла DIV по имени, а затем с помощью метода отсоединения, чтобы удалить его:
xpathValue = "//*[contains(@name, 'divName')]"
xpath = dom.createXPath(xpathValue)
if xpath != None:
nodes = xpath.selectNodes(dom)
if len(nodes) > 0:
for node in nodes:
node.detach()
Это, кажется, удаляет div отлично, я заметил, что он также удаляет элементы и текст внутри этого div. То, что я ищу для того чтобы достигнуть является удаление DIV без удаления элементов и текста внутри DIV, в результате чего в этом:
Some Text Here
<span>Some Text Here</span>
Можно ли для того чтобы достигнуть этого с dom4j? Если не какие-либо предложения о том, как это сделать?
Приветствия
Eef
Update:
@alamar
Я achived, что я хотел, принимая код и редактирование его немного, и это то, что я пришел до:
xpathValue = "//*[contains(@name, 'divName')]"
xpath = dom.createXPath(xpathValue)
if xpath != None:
nodes = xpath.selectNodes(dom)
if len(nodes) > 0:
for node in nodes:
parent = node.getParent()
nodeContents = node.content()
if len(nodeContents) > 0:
for subNode in nodeContents:
parent.add(subNode.clone().detach())
node.detach()
Это похоже на работу, но добавляет узлы к концу родительского узла в следующей ситуации:
<div name="parent">
<div name="divName">
Some Text Here
<span>Some Text Here</span>
</div>
<div name="keep"></div>
</div>
Результат заключается в следующем:
<div name="parent">
<div name="keep"></div>
Some Text Here
<span>Some Text Here</span>
</div>
Я пытаюсь выяснить, как получить содержимое удаленного узла останется в исходном положении, перед тем как div будет иметь имя «сохранить», вместо добавления после div с именем «держать». Я пробовал кое-что, но не могу показаться, это может помочь, может ли кто-нибудь помочь?
Eef