を編集して保存した後角括弧を取り除くためにどのように[] XMLファイル私は次のXMLのdoctypeの終わりに角括弧を取り除くにはどうすればよい
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd"[]>
私は、XMLをロードするコードを持っていますファイルを変更してから、ファイルを保存します。ここで
は、元のファイル(ノー角括弧)の見出しです:
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd">
私はそれが作成した文書を変換するときに"SMIL20.dtd">"
の終わりに何の[]はありません見ることができるように次のような角括弧のペア "SMIL20.dtd" []>ここで
はサンプルです:
class FileWorker
{
public static void UpdateFile(string myfile)
{
var doc = XDocument.Load(myfile);
try
{
foreach (var elem in doc.Elements())
{
if (elem.Name.LocalName == "type")
{
foreach (var child in elem.Elements())
{
if (child.Name.LocalName == "head")
{
foreach (var gc in child.Elements())
{
if (Configuration.Cdntosync == 0)
{
if (gc.Attributes().Any(att => att.Name.LocalName == "name" && att.Value == "httpBase"))
{
gc.RemoveAttributes();
gc.Add(new XAttribute("base", "rtmp://mybase"));
}
}
else if (Configuration.Cdntosync == 1)
{
if(gc.Attributes().Any(att => att.Name.LocalName == "name" && att.Value == "vod"))
{
gc.Remove();
}
gc.RemoveAttributes();
if (basecheck == false)
{
gc.Add(new XAttribute("base", "rtmp://mybase2"));
basecheck = true;
}
}
}
basecheck = false;
}
else if (child.Name.LocalName == "body")
{
foreach (var gc in child.Elements())
{
if (gc.Name.LocalName == "switch")
{
foreach (var video in gc.Elements())
{
foreach (var att in video.Attributes())
{
if (att.Name.LocalName == "src")
{
att.Value = att.Value.Replace("v1/test/", "mp4:Flvstream/");
}
}
}
}
}
}
}
}
doc.Save(myfile);
}
}
catch(Exception ex)
{
logger.Log(ExceptionLogger.LogLevel.ERROR, ex);
}
//}
}
たぶんコンパイラはハイネストレベルの疲れ、と私はいくつかのXPath式を使用する代わりに、DOMをforeachingたい:-)混乱のうちのいくつかのブラケットを投げた... – seldary