【发布时间】:2018-03-17 06:16:40
【问题描述】:
由于我无法找到上一个问题的答案: Xmlstarlet ed encoding and powershell inside Process C# 我想尝试另一条路。
我只需要能够从 ttml 文件中删除节点(这是一种用于字幕的 xml)。 使用 xmlstarlet 我可以这样做:
./xml.exe ed -N ns=http://www.w3.org/2006/04/ttaf1 -d '//ns:div[not(contains(@xml:lang,''Italian''))]' "C:\Users\1H144708H\Downloads\a.mul.ttml"
但我无法在不丢失 Windows Powershell 上的 utf-8 编码的情况下做到这一点(我能够在 linux bash 上做到这一点)。
如果我想在 C# 上做同样的事情,我该怎么做?我当然知道如何打开/读取/写入文本文件,但我不知道是否有办法创建具有特定命名空间的 xml,以及如何删除每个不包含 xml:lang languageToKeep 的节点。
编辑。 像这样的:
XmlDocument xml = new XmlDocument();
xml.Load(files[0]);
XmlNodeList nodes = xml.SelectNodes("//ns:div[not(contains(@xml:lang,''Italian''))]");
Console.WriteLine(nodes.ToString());
但我认为我需要命名空间......但我不知道如何。
【问题讨论】:
标签: c# xml powershell ttml