Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过XSLT将多个动态xml文件转换为C中的一个xml/resx文件#_C#_Transform_Xslt_Resx - Fatal编程技术网

C# 通过XSLT将多个动态xml文件转换为C中的一个xml/resx文件#

C# 通过XSLT将多个动态xml文件转换为C中的一个xml/resx文件#,c#,transform,xslt,resx,C#,Transform,Xslt,Resx,我想通过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"),

我想通过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"));

我非常感激地寻找答案

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

1)您是在寻找帮助编写XSLT的帮助,还是帮助将两个输入文件合并为一个?2) 你的想法的结果是什么?它起作用了吗?有错误吗?错误的结果?还没准备好跑步吗?如果是后者,您在什么时候卡住了?我想将>=2个resx文件转换为一个resx文件,并从这两个文件中提取指定的数据。错误:“InvalidOperationException未处理”-->结果将是无效的XML文档我在这里没有看到p/3构造函数。。。
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");
    }