【发布时间】:2012-05-09 08:59:15
【问题描述】:
我在将 CSV 文件写入 XML 时遇到问题。
CSV 文件
[Folder];;;;;
[Folder\Subfolder1];;;;;
[Folder\Subfolder1\Subfolder2];;;;;
"Descriptive stuff";"its a password";"user or something";"a URL";"if anyone has a comment"
[Folder\Subfolder1\Subfolder3];;;;;
"Descriptive stuff";"its a password";"user or something";"a URL";"if anyone has a comment"
XML 输出
<?xml version="1.0" encoding="utf-8"?>
<PASSWORDFILE xmlns="http://www.password-depot.de/schemas/passwordfile/6.0/passwordfile.xsd">
<PASSWORDS>
<GROUP NAME="Folder">
<GROUP NAME="Subfolder1">
<GROUP NAME="Subfolder2">
<ITEM>
<DESCRIPTION>Descriptive stuff</DESCRIPTION>
<PASSWORD>its a password</PASSWORD>
<USERNAME>user or something</USERNAME>
<URL>a URL</URL>
<COMMENT>if anyone has a comment</COMMENT>
</ITEM>
</GROUP>
<GROUP NAME="Subfolder3">
<ITEM>
<DESCRIPTION>Descriptive stuff</DESCRIPTION>
<PASSWORD>its a password</PASSWORD>
<USERNAME>user or something</USERNAME>
<URL>a URL</URL>
<COMMENT>if anyone has a comment</COMMENT>
</ITEM>
</GROUP>
</GROUP>
</GROUP>
</PASSWORDS>
</PASSWORDFILE>
我的问题只是,我不知道在使用后如何关闭 GROUP 标签。 目前,我只是关闭了 XML 末尾的 GROUP 标记,从而制作了一棵巨大的树。
【问题讨论】:
-
现在是。顺便提一句。 CSV 导入在 powershell 中效果很好,所以我猜它是一个 CSV
-
嗯,无论哪种情况,我都不会将其视为 CSV。根据定义,CSV 只是一个平面记录列表,每个记录都有相同的列(属性)。您所拥有的实际上是对层次结构的描述,因此您需要某种解析器。这可能在半屏代码左右是可能的,但我现在无法真正考虑它。可能维护一堆文件夹及其当前子文件夹,并检查新组需要属于的位置,从堆栈中弹出时关闭
GROUP元素。不过,它绝对不是单行的。 -
这很明显,我现在有大约 100 行错误代码。但我被困在如何制作层次结构上。我从 CSV 更改为 XML 是有原因的,因为正如您所说,它没有堆叠
-
嗯,它不应该需要 100 行。我想更多的是30左右。稍后我会尝试考虑一些事情。不过,现在是工作电话。
标签: xml powershell csv