gpt4 book ai didi

java - 删除父元素而不删除子元素 DOM

转载 作者:行者123 更新时间:2023-11-30 03:37:37 27 4
gpt4 key购买 nike

必须将我的原始 XML 转换为我的应用程序可以理解的所需 XML。

使用DOM(将其作为限制),不幸的是我只能使用Java,DOM。尝试过XSLT,但不幸的是不允许使用它。

输入:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><ns0:EMessage xmlns:ns0="http://www.abc/Something">
<ns0:Header>
<ns0:Snumber>1613</ns0:Snumber>
</ns0:Header>
<ns0:Name>SomeEvent</ns0:Name>
<ns0:NameSpace>http://www.abc/Something.xsd</ns0:NameSpace>
<ns0:Id>3</ns0:Id>
<ns0:myProperty>
<ns0:Name>ExtId</ns0:Name>
<ns0:Value>TEST_ID_12</ns0:Value>
</ns0:myProperty>
<ns0:myProperty>
<ns0:Name>CVersion</ns0:Name>
<ns0:Value>0</ns0:Value>
</ns0:myProperty>
</ns0:EMessage>

到目前为止,通过我的试验和谷歌,我已经到达这里。

<?xml version="1.0" encoding="UTF-8" standalone="no"?><ns0:EMessage xmlns:ns0="http://www.abc/Something">
<ns0:Header>
<ns0:Snumber>1613</ns0:Snumber>
</ns0:Header>
<ns0:Name>SomeEvent</ns0:Name>
<ns0:NameSpace>http://www.abc/Something.xsd</ns0:NameSpace>
<ns0:Id>3</ns0:Id>
<ns0:eventProperty>
<ExtId>TEST_ID_12</ExtId>
</ns0:eventProperty>
<ns0:eventProperty>
<CVersion>0</CVersion>
</ns0:eventProperty>
</ns0:EMessage>

在我上面的代码中,我已 Root 为 <ns0:EMessage>元素并将所有节点作为列表节点。通过使用从输入原始 XML 中提取的值创建一个新元素,将元素转换为所需的形式。但是正如我所采取的 </ns0:eventProperty>作为父节点。我不需要这个元素,所以基本上我需要删除这个父节点,并且这个父节点的子节点应该成为 <ns0:EMessage> 的直接子节点.我不需要接触其他元素。

所需输出

 <?xml version="1.0" encoding="UTF-8" standalone="no"?><ns0:EMessage xmlns:ns0="http://www.abc/Something">
<ns0:Header>
<ns0:Snumber>161003</ns0:Snumber>
</ns0:Header>
<ns0:Name>SomeEvent</ns0:Name>
<ns0:NameSpace>http://www.abc/Something.xsd</ns0:NameSpace>
<ns0:Id>3</ns0:Id>
<ExtId>TEST_ID_12</ExtId>
<CVersion>0</CVersion>
</ns0:EMessage>

已尽力。希望现在能有所帮助。提前致谢

最佳答案

回答我自己的问题很奇怪。但最终我得到了这个问题的逻辑和答案。

尽管将元素添加到 <ns0:eventProperty>父级,应将新创建的元素直接添加到根目录 <ns0:EMessage> .

注意::整个过程将在一个循环中完成。使用当前父级并使用数据创建直接子级通过执行 root.appendChild(newChildElement) 来创建根。然后在为所有子元素运行的同一个循环中,将删除当前父元素逻辑放入 END 中。这样,一旦创建了新元素,只需删除当前父元素即可。

关于java - 删除父元素而不删除子元素 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com