使用c#

时间:2016-12-07 07:45:00

标签: c# xml linq xsd

再次邀请其他程序员。

我有一个任务,我需要将omnipage18的xml输出转换为xml alto格式。

截至目前,我正在使用c#和linq来读取xml。

但我不知道输出是否正确。

我找到了一个PHP代码,它转换了abby finereader sdk xml output,但我的要求是使用omnipage 18,这是我的问题:

阅读后我发现了xsd file 而且我已经读到了:

  

XSD (XML Schema Definition) is a World Wide Web Consortium (W3C) recommendation that specifies how to formally describe the elements in an Extensible Markup Language (XML) document.

我的问题是我真的不懂如何使用XSD文件。那么如何使用写入的XSD文件将omnipage xml转换为alto xml? 。 这个XSD如何引导我转换xml文件?

XSD文件用于定义XML格式的可能结构和内容。但是如何使用它作为创建XSLT文件的指南? (抱歉这个愚蠢的问题)

截至目前,这是我的c#代码

private string OmnitoAlto(string fileName)
        {
            StringBuilder alto = new StringBuilder();
            try
            {
                XDocument document = XDocument.Load(fileName);

                var coordinates = from r in document.Descendants().Where(e => e.Name.LocalName == "wd")
                                  select new
                                  {
                                      HPOS = r.Descendants().Where(e => e.Name.LocalName == "ch").Select(n => n.Attribute("l").Value).ToArray(),
                                      VPOS = r.Descendants().Where(e => e.Name.LocalName == "ch").Select(n => n.Attribute("r").Value).ToArray(),
                                      chs = r.Descendants().Where(e => e.Name.LocalName == "ch").Select(n => n.Value).ToArray(),

                                  };

                foreach (var item in coordinates)
                {
                    alto.Append("<String HPOS=\"" + item.HPOS.First() + "\" VPOS=\"" + item.VPOS.First() + "\" Width=\"" + (Double.Parse(item.VPOS.Last()) - Double.Parse(item.HPOS.First())) + "\" CONTENT=\"" + String.Join("", item.chs) + "\"/>" + Environment.NewLine);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Message: " + ex.Message);
                Console.WriteLine("Stacktrace: " + ex.StackTrace);
            }
            return alto.ToString();
        }

以下是示例xml im converting

的链接

0 个答案:

没有答案