因爲我無法找到我以前的問題的答案: Xmlstarlet ed encoding and powershell inside Process C# 我想嘗試其他路徑。從ttml文件刪除xml節點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());
但是我認爲我需要的命名空間......我不知道怎麼辦。