【发布时间】:2020-03-15 22:31:20
【问题描述】:
我有一个格式如下的 XML 文档:
<?xml version="1.0" encoding="UTF-8"?>
<appname version="2.3">
<system name="web host">
<username><![CDATA[username1]]></username>
<password><![CDATA[password1]]></password>
<note><![CDATA[]]></note>
<url><![CDATA[]]></url>
</system>
<system name="vendor name">
<username><![CDATA[username@email.com]]></username>
<password><![CDATA[password2]]></password>
<note><![CDATA[]]></note>
<url><![CDATA[]]></url>
</system>
<system name="vendor name 3">
<username><![CDATA[username@email.com]]></username>
<password><![CDATA[password3]]></password>
<note><![CDATA[]]></note>
<url><![CDATA[]]></url>
</system>
<appname>
我正在尝试使用:
xmlstarlet \
sel -T -t -m /root/system \
-v "concat(@name,',',username,',',password,',',note,',',url)" \
-n filename.xml
我得到:
failed to load external entity "concat(@name,',',username,',',password,',',note,',',url)-n"
我只想要当前文档中的制表符分隔文档,以便将其导入另一个密码管理器。我有数百个条目,我真的不想重新输入。
谁能帮忙?
【问题讨论】:
-
该错误听起来像是引用问题。你在什么上运行 xmlstarlet?如果我将
/root更改为/appname(并修复 appname 结束标记),您的命令行对我在 cygwin 中使用 bash 有效。 -
我在 Mac OS 13 上将它与 Brew 一起使用。
标签: xml csv xmlstarlet