split - 如何对文件进行排序并移动到其受人尊敬的目录 (c#)

标签 split xelement

所以我遇到的问题是,如果一个 xml 文件包含“ONE”,那么它应该移动到 credit 目录,否则移动到 debit 目录。这是我目前的解决方案:

private void SplitAndMoveCreditCamts(FileInfo f)
{      
   if (v.Elements().Contains(x => x.Value == "ONE"))
      WriteToDirectory(v, "ONE\\");    
   else    
      WriteToDirectory(v, "TWO\\");
}

它确实将文件移动到两个目录。这意味着“WriteToDirectory”方法正在工作,但忽略“ONE”条件。我相信错误就在那里。

最佳答案

我认为您的问题在于元素行 (v.Elements().Contains(x => x.Value == "ONE"))
对您来说最好的解决方案是制作两个单独的方法,一个和两个,您的 SplitAndMoveONE叫做。

private void SplitAndMoveONE(FileInfo f)
        {
            XElement[] els = GetXmlMessages(f.Name);

            foreach (var v in els)
            {
                XNamespace ns = v.Name.Namespace;
                bool exists = v.Descendants(ns + "ONE")
                 .Select(item => item.Value);

                if (exists)
                    WriteToDirectory(v, "ONE\\");
                else
                    // give error message
            }
        }

命名空间对于查找标签中的元素至关重要。这同样适用于二。

关于split - 如何对文件进行排序并移动到其受人尊敬的目录 (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389670/

相关文章:

python - 在大空白处分割 Pandas

c# - XElement.Element ("Leve1/Level2") 而不是 XElement.Element ("Leve1").Element ("Level2")

c# - 在我的 XML 文件中包含 xmlns

C# - XElement 和文化

java - StringTokenizer 未查看选项卡 ("\t")作为空白 ("\\s+")

c++ - 尝试对随机 [1-100 000] 长度的 vector 进行子矢量化

javascript - 使用多个嵌套分隔符拆分字符串

java - 用 ".split"分割字符串,但将分隔符(字符串)保留在匹配数组中

c# - 隐藏没有数据的 XElement 节点

c# 如何使用 xelement 读取 xml 属性