gpt4 book ai didi

xml - 如何在 Linux 中解析相同命名的 XML 元素内容?

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:48 24 4
gpt4 key购买 nike

大家好。我正在尝试编写一个编辑 xml 文件的脚本。不幸的是,文件中有相同的命名标签:

<phase1>
<ikeid>1</ikeid>
<iketype>ikev1</iketype>
<mode>main</mode>
<myid_type>myaddress</myid_type>
<myid_data/>
<peerid_type>peeraddress</peerid_type>
<peerid_data/>
<lifetime>28800</lifetime>
<pre-shared-key>lol</pre-shared-key>
</phase1>

<phase1>
<ikeid>2</ikeid>
<iketype>ikev1</iketype>
<mode>main</mode>
<myid_type>any</myid_type>
<myid_data/>
<peerid_type>address</peerid_type>
<peerid_data/>
<lifetime>20000</lifetime>
<pre-shared-key>lel</pre-shared-key>
</phase1>

我需要分别访问这两个“phase1” block 并使用 xmllint 编辑它们。简而言之,我想要这样的输出:

<phase1>
<ikeid>1</ikeid>
<iketype>ikev1</iketype>
<mode>main</mode>
<myid_type>myaddress</myid_type>
<myid_data/>
<peerid_type>peeraddress</peerid_type>
<peerid_data/>
<lifetime>28800</lifetime>
<pre-shared-key>lol</pre-shared-key>
</phase1>

<phase1>
<ikeid> I EDITTED THIS PART</ikeid>
<iketype>ikev1</iketype>
<mode>THIS IS ALSO EDITTED</mode>
<myid_type>any</myid_type>
<myid_data/>
<peerid_type>address</peerid_type>
<peerid_data/>
<lifetime>HELP</lifetime>
<pre-shared-key>lel</pre-shared-key>
</phase1>

谢谢。

最佳答案

我想通了。如下所示:

xmllint --shell file.xml
cd /some/path/phase1[ikeid='1']/lifetime

此命令到达包含“ikeid”值 1 的“phase1”的“lifetime”元素。

关于xml - 如何在 Linux 中解析相同命名的 XML 元素内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383745/

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