小编Met*_*l3d的帖子

使用Docker和IDE

为了共享安装,我们决定使用docker。对于每个项目,全局依赖项都安装在容器内。

我们正在使用Python(和Java,但目前仅讨论Python;))

例如,在使用Vim时,我想使用代码完成功能,但是因为整个库都安装在容器中,所以我在主机上的vim安装无法访问它们。Java,Javascript等都是如此,这是绝对正常的……

但是,是否有任何解决方案可以使用容器,而无需在容器本身中安装IDE,也可以访问IDE的库?

python java ide vim docker

5
推荐指数
1
解决办法
1308
查看次数

输出行的 xmllint 问题

我知道我的问题包括 2 个问题......

首先,我想使用 xmllint 输出“loc”内容标签。我加载的站点地图有一个 xmlns="..."。

在 xmllint shell 上,我需要这样做:

setrootns
xpath //defaultns:loc
Run Code Online (Sandbox Code Playgroud)

这有效...没问题。但我需要在 bash 脚本中执行此操作。

(AFAIK) xmllint 没有选项告诉“让我们走,setrootns”,所以我不能这样做:

xmllint --xpath "//loc" sitemaps.xml
# or
xmllint --xpath "//defaultns:loc" sitemaps.xml
Run Code Online (Sandbox Code Playgroud)

这是第一个问题,我如何告诉 xmllint 加载默认的 ns ?

如果我不能,让我们看看我的第二个解决方案:

我可以删除 xmlns 属性,然后就没有 ns 可以使用:

xmllint --xpath "//loc" <(sed -r 's/xmlns=".*?"//' sitemaps.xml)
Run Code Online (Sandbox Code Playgroud)

但是...现在...我的 500 个“loc”内容的整个响应都连接在一行中!...

我也尝试过这个:

xmllint --shell sitemaps.xml <<EOF
setrootns
xpath //defaultns:loc/text()
EOF
Run Code Online (Sandbox Code Playgroud)

或者再来一次

xmllint --shell sitemaps.xml <<EOF
setrootns
cat //defaultns:loc
EOF
Run Code Online (Sandbox Code Playgroud)

第一个给了我(例如)

465  TEXT
    content=http://... 
Run Code Online (Sandbox Code Playgroud)

带有截断的网址

第二个给我每两行“------”...最后一行给我一个“/>”...

我开始非常紧张......:)

如果您找到任何解决方案,非常感谢。

目标是每条线都有一个位置。

xml sitemap bash xml-parsing xmllint

3
推荐指数
1
解决办法
6246
查看次数

标签 统计

bash ×1

docker ×1

ide ×1

java ×1

python ×1

sitemap ×1

vim ×1

xml ×1

xml-parsing ×1

xmllint ×1