仅在一个子节点中使用xmlstarlet编辑XML

Shahar Hamuzim Rajuan

使用命令时:

-bash-4.2$ xmlstarlet ed -u "/configurations/rules/rule/branch" -v 'DAVID' config.xml > final.xml

我看到输出文件已更改为DAVID,但是在声明标签“ branch”的每个位置都进行了全局更改。

但是我只想在一个子节点上进行更改,例如“ APP1”,我需要使用什么命令?并有一种方法可以将值“ DAVID”作为参数?

  <configurations>
    <smtpHost>smtp3.gmail.com</smtpHost>
    <smtpPort>25</smtpPort>
    <emailFrom>[email protected]</emailFrom>
    <emailSubject>Push notification</emailSubject>
    <!-- Stash general URL-->
    <gitViewerURL>http://mydtbld0005.gmail.com:7990/projects/</gitViewerURL>

    <!-- repositories list and commit URL path per repo -->

    <repositoryViewerPath name="hookTester" path="DevOps/repos/hooktester/commits/"/>

    <separator>#@#</separator>
    <catExe>cat</catExe>
    <catExeWindows>type</catExeWindows>
    <gitExe>git</gitExe>
    <gitExeWindows>C:\\Program Files (x86)\\Git\\cmd\\git.exe</gitExeWindows>
    <gitFolder>/gitdata/alm_mng.git</gitFolder>
    <gitFolderWindows>c:\gitdata\alm_mng.git</gitFolderWindows>
      <rules>
            <rule>
                <name>APP1</name>
                <repo>hookTester</repo>
                <branch>refs/heads/master</branch>
                <emailTo>[email protected]</emailTo>
                <path>F1/ido.xml </path>
            </rule>
            <rule>
                <name>APP2</name>
                <repo>hookTester</repo>
                <branch>refs/heads/master</branch>
                <emailTo>[email protected]</emailTo>
                <path>F2/ido.xml </path>
            </rule>
       </rules>
  </configurations> 
罗曼·佩列赫雷斯特(RomanPerekhrest)

xmlstarlet 解决方案:

new_branch="DAVID"
xmlstarlet ed -u "/configurations/rules/rule[name='APP1']/branch" -v "$new_branch" config.xml > final.xml

关键<rule>节点应如下所示:

<rule>
      <name>APP1</name>
      <repo>hookTester</repo>
      <branch>DAVID</branch>
      <emailTo>[email protected]</emailTo>
      <path>F1/ido.xml </path>
    </rule>

您还可以通过应用全局选项就地修改初始文件-L

xmlstarlet ed -L -u ... config.xml

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用xmlstarlet仅添加一个子节点

来自分类Dev

使用XPath获取节点的每个子节点的第一个子节点

来自分类Dev

xQuery更改节点层次结构(从一个节点中删除一个子节点并将其作为同级节点返回)

来自分类Dev

Select-Xml仅显示第一个节点中的子节点

来自分类Dev

您如何使用partykit 库中的partysplit 函数在一个子节点中进行具有多个因子级别的拆分

来自分类Dev

使用lxml解析XML,当存在另一个子节点时无法获取文本

来自分类Dev

linq在子节点中使用单独的xml值

来自分类Dev

R中的XML处理:在子节点中使用xmlGetAttr

来自分类Dev

使用嵌套的For Each和If从另一个子节点返回节点值

来自分类Dev

XML返回所有节点名称包含一个子字符串

来自分类Dev

用xml中的多个位置替换一个子节点值

来自分类Dev

解析XML尝试获取下一个子节点

来自分类Dev

XML返回所有节点名称包含一个子字符串

来自分类Dev

Xpath 总是在 JAVA 中返回 XML 的第一个子节点

来自分类Dev

使用xslt将父节点添加到XML的一个或多个子节点

来自分类Dev

从父节点中删除所有子节点,除了一个特定的,c# 中的 xml

来自分类Dev

使用XSLT为每个特定的子节点复制XML并为每个子节点保留一个完整副本吗?

来自分类Dev

在jsTree中打开一个子节点

来自分类Dev

在jsTree中打开一个子节点

来自分类Dev

如何使用XSLT删除根节点并使第一个子节点成为新的根节点?

来自分类常见问题

如何使用querySelector检索div的第一个子元素同级节点?

来自分类Dev

使用 boost::property_tree 选择一个子节点标签而不考虑位置

来自分类Dev

使用Linq to XML和C#从其他同名节点中选择一个节点

来自分类Dev

XSLT 从同一个父节点中的子节点生成表

来自分类Dev

XML最后一个子填充的问题(Android)

来自分类Dev

使用powershell将另一个子元素附加到xml

来自分类Dev

在另一个节点中具有相同名称的XML节点

来自分类Dev

在节点中编辑xml属性

来自分类Dev

添加到 Stackview 子视图的 CAShapeLayers 仅在一个子视图上呈现

Related 相关文章

  1. 1

    使用xmlstarlet仅添加一个子节点

  2. 2

    使用XPath获取节点的每个子节点的第一个子节点

  3. 3

    xQuery更改节点层次结构(从一个节点中删除一个子节点并将其作为同级节点返回)

  4. 4

    Select-Xml仅显示第一个节点中的子节点

  5. 5

    您如何使用partykit 库中的partysplit 函数在一个子节点中进行具有多个因子级别的拆分

  6. 6

    使用lxml解析XML,当存在另一个子节点时无法获取文本

  7. 7

    linq在子节点中使用单独的xml值

  8. 8

    R中的XML处理:在子节点中使用xmlGetAttr

  9. 9

    使用嵌套的For Each和If从另一个子节点返回节点值

  10. 10

    XML返回所有节点名称包含一个子字符串

  11. 11

    用xml中的多个位置替换一个子节点值

  12. 12

    解析XML尝试获取下一个子节点

  13. 13

    XML返回所有节点名称包含一个子字符串

  14. 14

    Xpath 总是在 JAVA 中返回 XML 的第一个子节点

  15. 15

    使用xslt将父节点添加到XML的一个或多个子节点

  16. 16

    从父节点中删除所有子节点,除了一个特定的,c# 中的 xml

  17. 17

    使用XSLT为每个特定的子节点复制XML并为每个子节点保留一个完整副本吗?

  18. 18

    在jsTree中打开一个子节点

  19. 19

    在jsTree中打开一个子节点

  20. 20

    如何使用XSLT删除根节点并使第一个子节点成为新的根节点?

  21. 21

    如何使用querySelector检索div的第一个子元素同级节点?

  22. 22

    使用 boost::property_tree 选择一个子节点标签而不考虑位置

  23. 23

    使用Linq to XML和C#从其他同名节点中选择一个节点

  24. 24

    XSLT 从同一个父节点中的子节点生成表

  25. 25

    XML最后一个子填充的问题(Android)

  26. 26

    使用powershell将另一个子元素附加到xml

  27. 27

    在另一个节点中具有相同名称的XML节点

  28. 28

    在节点中编辑xml属性

  29. 29

    添加到 Stackview 子视图的 CAShapeLayers 仅在一个子视图上呈现

热门标签

归档