Questions tagged «xml»

一种简单,非常灵活的文本格式,表示可扩展标记语言。

1
Vim:使XML文本“漂亮”
有没有一种简单的方法vi可以使您的XML文本“漂亮”? 例如: 我要这个.. <person> <name>Nick</name> <age>26</age> <gender>male</gender> <occupation>doctor</occupation> </person> 成为这个... <person> <name>Nick</name> <age>26</age> <gender>male</gender> <occupation>doctor</occupation> </person>

2
如何在包含“”的字符串中插入变量?
我想通过插入变量来构造一个xml字符串: str1="Hello" str2="world" xml='<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>' echo $xml 结果应该是 <?xml version="1.0" encoding="iso-8859-1"?><tag1>Hello</tag1><tag2>world</tag2> 但是我得到的是: <?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2> 我也试过 xml="<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>" 但这会删除内部的双引号,并给出: <?xml version=1.0 encoding=iso-8859-1?><tag1>hello</tag1><tag2>world</tag2>
25 bash  shell  variable  xml 

1
用sed替换文本并保留部分原始文本
我正在尝试转换 <id>1</id> <Name>ENTERPRISE RESOURCE PLANNING</Name> 至: <column name="id">1</column> <column name="Name">ENTERPRISE RESOURCE PLANNING</column> 我假设最好的工具是sed,但是我不知道如何将部分原始文本保留在替换部分中。 如果我做: $ sed -i 's/<.*>.*<.*>/<column name="\\1">\\2<\/column>/g' filename.xml 输出为: <column name="\1">\2</column> <column name="\1">\2</column> 或从内部执行类似操作vi,它输出: <column name=""></column> <column name=""></column> 我如何才能做到\1并被\2替换回其原始值?

7
如何使用patch和diff合并两个文件并自动解决冲突
我已经阅读了有关diff和patch的内容,但我不知道如何应用所需的内容。我想这很简单,因此为了显示我的问题,请使用以下两个文件: xml文件 <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#AAAAAA</color> <color name="not_in_b_too">#AAAAAA</color> </resources> b.xml <resources> <color name="same_in_b">#AAABBB</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_a">#AAAAAA</color> </resources> 我想要一个输出,看起来像这样(顺序无关紧要): <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_b_too">#AAAAAA</color> <color name="not_in_a">#AAAAAA</color> </resources> 合并应包含遵循以下简单规则的所有行: 仅在其中一个文件中的任何行 如果一行具有相同的名称标签但值不同,则从第二行取值 我想在bash脚本中应用此任务,因此如果另一个程序更合适,那么它不一定需要完成diff和patch的操作。

7
解析XML以获取bash脚本中的节点值?
我想知道如何通过以下路径获取节点的值: config/global/resources/default_setup/connection/host config/global/resources/default_setup/connection/username config/global/resources/default_setup/connection/password config/global/resources/default_setup/connection/dbname 来自以下XML: <?xml version="1.0"?> <config> <global> <install> <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date> </install> <crypt> <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key> </crypt> <disable_local_modules>false</disable_local_modules> <resources> <db> <table_prefix><![CDATA[]]></table_prefix> </db> <default_setup> <connection> <host><![CDATA[localhost]]></host> <username><![CDATA[root]]></username> <password><![CDATA[pass123]]></password> <dbname><![CDATA[testdb]]></dbname> <initStatements><![CDATA[SET NAMES utf8]]></initStatements> <model><![CDATA[mysql4]]></model> <type><![CDATA[pdo_mysql]]></type> <pdoType><![CDATA[]]></pdoType> <active>1</active> </connection> </default_setup> </resources> <session_save><![CDATA[files]]></session_save> </global> <admin> <routers> <adminhtml> <args> <frontName><![CDATA[admin]]></frontName> </args> …


2
重新格式化大量XML文件
我正在处理分散在整个嵌套目录结构中的大量XML文件。 我尝试了以下方法: $ find . -name "*.xml" -type f | xargs -- xmllint --format 问题在于会在屏幕上生成格式化的XML输出,但不会更改文件。 如何更改此命令,以便更改实际文件内容?
11 find  xargs  xml 

2
XML命令行(shell脚本)操作
如何在Shell脚本中从命令行操作XML? 有许多用于处理表格数据,替换环境变量或用正则表达式替换文本片段的命令,但是我还没有发现任何针对XML的命令。 我的构建脚本需要在xml文档的主标签中插入一个带有内容的标签,为此我发现在OS中安装Java,Perl或python是一个杀手kill脚(我的脚本是在gitlab中使用docker镜像完成的,因此我的工作使用maven:3.5-jdk-8图片中可用的工具将是一个梦想)。 我不想用sed处理XML,尽管在我的构建脚本中它可以工作,因为它很邪恶。 示例:我有以下xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- a lot of other tags--> </project> 我想插入以下代码块: <distributionManagement> <repository> <id>private-releases</id> <url>https://my.private.server.com/nexus/repository/maven-releases/</url> </repository> </distributionManagement> 在项目代码中(并且无论是在开始还是结束时都没有关系。

3
如何比较不同行中具有相同数据的两个xml文件?
我有两个文件具有相同的数据,但行不同。 文件1: <Identities> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> 文件2: <Identities> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> 如果我使用diff file1 file2命令,则会得到以下响应: 1,10d0 < …

2
使用命令行实用程序在UNIX中解析XML,JSON和较新的数据文件格式
Unix环境中有一些出色的工具可以解析各种形式的文本。但是,最近,数据不再是以前的传统(历史)格式(CSV,TSV,基于记录或基于其他分隔符的格式)。这些天的数据以XML / JSON之类的结构化格式进行交换。 我知道有一些很好的工具,例如sed,awk和Perl,它们可以减少几乎任何形式的数据。但是,要使用这种结构化数据,通常必须编写一个完整的程序,并且由于提取信息的时间很少,因此必须坐下来弄清楚要查询和放置的内容的整个逻辑。以编程方式将其关闭。有时这还不行–基本上是因为从这些文件中提取的信息充当了进一步工作的输入;还因为搜索适当的解决方案并将其编码所需的时间。需要具有足够开关的命令行工具来查找,查询和转储数据。 我正在寻找采用XML / JSON或其他形式的结构化数据并将其转储为csv等其他格式的工具,以便从那里可以使用其他命令从中获取任何信息。 您知道有哪些命令行实用程序可以完成这种工作吗?已经有可用的awk / Perl脚本了吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.