【问题标题】:Transform more than 1 dynamic xml Files via XSLT into one xml/resx file in C#通过 XSLT 将超过 1 个动态 xml 文件转换为 C# 中的一个 xml/resx 文件
【发布时间】:2011-01-10 14:30:27
【问题描述】:

我想通过 xslt 将一个或多个动态 resx/xml 文件转换为一个 resx/xml 文件。
代码应在 VisualStudio 2010 中运行

我的想法是这段代码:

XsltSettings set = new XsltSettings(true, false);  
set.EnableDocumentFunction = true;

        XElement root = new XElement("root",
            XElement.Load("file1.xml"),
            XElement.Load("file2.xml"));

        XslCompiledTransform transform = new XslCompiledTransform();
        transform.Load("xsl.xsl",set,new XmlUrlResolver());
        XsltArgumentList xslArg = new XsltArgumentList();
        transform.Transform(root.CreateReader(), /*xslArg,*/ XmlWriter.Create("output.xml"));

我很感激地寻找答案

【问题讨论】:

  • 1) 您是在寻求编写 xslt 的帮助,还是寻求将两个输入文件合二为一的帮助? 2)你的想法的结果是什么——它奏效了吗?有错误吗?结果不正确?还没准备好跑步?如果是后者,你在什么时候卡住了?
  • 我想将 >=2 个 resx 文件转换为一个 resx 文件,并从这两个文件中提取指定的数据。错误:“InvalidOperationException 未处理”--> 结果将是无效的 XML 文档
  • 我在这里看不到 msdn.microsoft.com/en-us/library/… p/3 构造函数...

标签: c# transform xslt resx


【解决方案1】:
public static void MergeResx(XElement target, string[] sources)
    {

        foreach (string source in sources)
        {
            XElement xe = XElement.Load(source);
            target.Add(new XElement("InternalRoot", new XAttribute("Source", source), from el in xe.Elements()
                                                                                      select el));
        }
        target.Save(@"C:\MergeDone.xml");
    }

【讨论】:

    【解决方案2】:

    在不为 XSLT 处理器编写扩展的情况下,您的答案将与您得到的一样好。您也可以考虑只使用 LINQ to XML 来重构文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多