提问人:Patrick Freitas 提问时间:10/28/2023 最后编辑:Jason AllerPatrick Freitas 更新时间:10/28/2023 访问量:55
格式化要在终端中读取的 XML 文件
Formatting XML file to read in terminal
问:
我正在尝试将 XML 文件读取为 termux 终端中的文本(就像猫一样)。XML 文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<book name="2ª João" abbrev="2jo" chapters="1">
<chapter number="1">
<verse number="1">O presbítero à senhora eleita e aos seus filhos, a quem amo na verdade, — e não apenas eu os amo, mas também todos os que conhecem a verdade —</verse>
<verse number="2">por causa da verdade que permanece em nós e estará conosco para sempre.</verse>
<verse number="3">A graça, a misericórdia e a paz da parte de Deus Pai e de Jesus Cristo, seu Filho, estarão conosco em verdade e em amor.</verse>
有书,有章,有诗。 我想一次打印一整章。
我正在使用 mikefarah/yq 实现
所以我运行:yq -p xml '.book.chapter' < nvi-2jo.xml
其中返回:
+@number: "1"
verse:
- +content: O presbítero à senhora eleita e aos seus filhos, a quem amo na verdade, — e não apenas eu os amo, mas também todos os que conhecem a verdade —
+@number: "1"
- +content: por causa da verdade que permanece em nós e estará conosco para sempre.
+@number: "2"
- +content: A graça, a misericórdia e a paz da parte de Deus Pai e de Jesus Cristo, seu Filho, estarão conosco em verdade e em amor.
我想去掉这个“+@number:”和“+content”,只打印文本。
期望输出:
''' O presbítero à senhora eleita e aos seus filhos, a quem amo na verdade, — e não apenas eu os amo, mas também todos os que conhecem a verdade — Por causa da verdade que permanece em nós e estará conosco para sempre. A graça, a misericórdia e a paz da parte de Deus Pai e de Jesus Cristo, seu Filho, estarão conosco em verdade e em amor. '''
答:
0赞
pmf
10/28/2023
#1
XML 的级别为 -> -> 。有了你,你只去.再往前走,然后用 遍历其项。这些项目包含属性和文本节点作为内容。您可以将两者都作为地图的字段进行类型标记。如果只想要文本节点,请再次下降到:book
chapter
verse
.book.chapter
chapter
.verse
[]
number
+content
yq -p xml '.book.chapter.verse[].+content' < nvi-2jo.xml
O presbítero à senhora eleita e aos seus filhos, a quem amo na verdade, — e não apenas eu os amo, mas também todos os que conhecem a verdade —
por causa da verdade que permanece em nós e estará conosco para sempre.
A graça, a misericórdia e a paz da parte de Deus Pai e de Jesus Cristo, seu Filho, estarão conosco em verdade e em amor.
评论