格式化要在终端中读取的 XML 文件

Formatting XML file to read in terminal

提问人:Patrick Freitas 提问时间:10/28/2023 最后编辑:Jason AllerPatrick Freitas 更新时间:10/28/2023 访问量:55

问:

我正在尝试将 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. '''

Android XML termux yq

评论


答:

0赞 pmf 10/28/2023 #1

XML 的级别为 -> -> 。有了你,你只去.再往前走,然后用 遍历其项。这些项目包含属性和文本节点作为内容。您可以将两者都作为地图的字段进行类型标记。如果只想要文本节点,请再次下降到:bookchapterverse.book.chapterchapter.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.