【发布时间】:2019-03-05 09:17:21
【问题描述】:
我有十几个以下列格式提交的 XML(简短示例):
<namespace name="Colors">
<green>
<en>Green</en>
<de>Gruen</de>
</green>
<blue>
<en>Blue</en>
<de>Blau</de>
</blue>
<namespace name="Subcolors">
<perlwhite>
<en>Perl White</en>
<de>Perlweis</de>
</perlwhite>
<racingblack>
<en>Racing Black</en>
<de>Rennschwarz</de>
</racingblack>
</namespace>
</namespace>
我必须提取所有语言标签并以这种格式将它们输出到 csv 文件中:
en;de;
Green;Gruen;
Blue;Blau;
Perl White;Perlweiß;
Racing Black;Renn Schwarz;
然后,我把这个 CSV 文件交给翻译。翻译后,CSV 文件中添加了一种新语言,例如法语:
en;de;fr;
Green;Gruen;Vert;
Blue;Blau;Bleu;
Perl White;Perlweiß;Perl Blanc;
Racing Black;Rennschwarz;Courses Noir;
然后我需要再次读取这个 csv 文件,并将所有标签附加到所有相应的 xml 文件中,如下所示:
<namespace name="Colors">
<green>
<en>Green</en>
<de>Gruen</de>
<fr>Vert</fr>
</green>
<blue>
<en>Blue</en>
<de>Blau</de>
<fr>Bleu</fr>
</blue>
<namespace name="Subcolors">
<perlwhite>
<en>Perl White</en>
<de>Perlweis</de>
<fr>Perl Blanc</fr>
</perlwhite>
<racingblack>
<en>Racing Black</en>
<de>Renn Schwarz</de>
<fr>Courses Noir</fr>
</racingblack>
</namespace>
</namespace>
命名空间或其他节点(此处未列出,如“多色”、“彩色”等)可以嵌套多次。并非每个文件都包含每个节点。并不是每个节点都以相同的方式嵌套在每个 xml 文件中。这因文件而异。但最后,每个分支都以几个语言标签结束。这些需要阅读和更新。
所以一个 xml 文件可以是这样的:
<namespace name="Colors">
<green>
<en>Green</en>
<de>Gruen</de>
</green>
<blue>
<en>Blue</en>
<de>Blau</de>
</blue>
<namespace name="Subcolors">
<perlwhite>
<en>Perl White</en>
<de>Perlweis</de>
</perlwhite>
<racingblack>
<en>Racing Black</en>
<de>Rennschwarz</de>
</racingblack>
<colored>
<namespace name="Misc">
<fruits>
<apple>
<de>Apfel</de>
<en>Apple</en>
</apple>
<orange>
<de>Orange</de>
<en>Orange</en>
</orange>
</fruits>
<vegetables>
<cucumber>
<en>Cucumber</en>
<de>Gurke</de>
</cucumber>
</vegetables>
<namespace name="Other">
<othertag>
<entry>
<en>Entry</en>
<de>Eintrag</de>
</entry>
</othertag>
</namespace>
</namespace>
</colored>
</namespace>
</namespace>
所以不是每个xml文件都是一样的,不同的节点有不同的标签名,不同的嵌套。但是每个分支都以语言标签结尾。
有人可以帮助我用 C# 以简单的方式做到这一点吗?可能有两个简单的函数,比如 Import(readCsvPath, appendXmlPath) 和 Export(readXmLPath, writeCsvPath)。
【问题讨论】:
-
为版主的利益发表评论,这对我来说就像一个家庭作业问题
-
@Horst 你在这方面做过什么尝试吗?如果是这样,您能否将其包含在内,以便我们查看可能出现的问题?其中哪一部分您需要帮助?