Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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# IsoMessage 8583 XML c_C#_Xml_Iso_Iso8583 - Fatal编程技术网

C# IsoMessage 8583 XML c

C# IsoMessage 8583 XML c,c#,xml,iso,iso8583,C#,Xml,Iso,Iso8583,执行时,我在这个位置得到错误。 XDocument doc=XDocument.ParseBuildIsoMessage.Properties.Resources.Deneme//我通过这种方式从参考资料中获取文档 ` GenericPackager packager = new GenericPackager(doc.ToString());` jpos.dll中发生类型为“org.jpos.iso.ISOException”的未处理异常。其他信息:读取时出错 我正在尝试用c语

执行时,我在这个位置得到错误。 XDocument doc=XDocument.ParseBuildIsoMessage.Properties.Resources.Deneme//我通过这种方式从参考资料中获取文档

       ` GenericPackager packager = new GenericPackager(doc.ToString());`
jpos.dll中发生类型为“org.jpos.iso.ISOException”的未处理异常。其他信息:读取时出错

我正在尝试用c语言构建一个ISO消息。我将Jar文件转换成一个dll文件,并使用一些名称空间 使用org.jpos.util; 使用org.jpos.iso; 使用org.jpos.iso.channel; 使用org.jpos.iso.packager; 但是我不能打包我的xml文件,它会抛出一个错误


这太简单了,无法使用第三方dll。使用xml linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            string xmlHeader =
                "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
                "<!DOCTYPE isopackager PUBLIC" +
                "        \"-//jPOS/jPOS Generic Packager DTD 1.0//EN\"" +
                "        \"http://jpos.org/dtd/generic-packager-1.0.dtd\" >" +

                "<!-- ISO 8583:1987 (ASCII) field descriptions for GenericPackager -->" +

                "<isopackager>" +
                "</isopackager>";


            //<isofield

            XDocument doc = XDocument.Parse(xmlHeader);
            XElement isoPackager = doc.Descendants("isopackager").FirstOrDefault();

            List<IsoField> isoFields = new List<IsoField>() {
                new IsoField() { id= 0, length= 4, name="MESSAGE TYPE INDICATOR", cClass = "org.jpos.iso.IFA_NUMERIC"},
                new IsoField() { id= 1, length= 16, name="BIT MAP", cClass= "org.jpos.iso.IFA_BITMAP"},
                new IsoField() { id= 2, length= 19, name="PAN - PRIMARY ACCOUNT NUMBER", cClass= "org.jpos.iso.IFA_LLNUM"}
                };

            foreach (IsoField isofield in isoFields)
            {
                isoPackager.Add(new XElement("isofield", new object[] {
                    new XElement("id", isofield.id),
                    new XElement("length", isofield.length),
                    new XElement("name", isofield.name),
                    new XElement("class", isofield.cClass)
                }));

            }
            doc.Save(FILENAME);

        }
    }

    public class IsoField
    {
        public int id {get; set;}
        public int length { get; set; }
        public string name { get; set; }
        public string cClass { get; set; }
    }

}

当提供如下路径时,JPOSDLL工作正常

GenericValidatingPackager=新的GenericValidatingPackager;
packager.readFilec:/isoxml/iso8583binary.xml

这是创建xml文件的好方法,但我已经创建了一个xml文件,问题是GenericPackager packager=new GenericPackagerdoc.ToString;不接受xml文件。看起来通用打包程序需要流。所以StringReader=newStringReaderDoc.toString;GenericPackager packager=新的GenericPackagerreader;实际上在Java InputStream中是=getClass.getResourceAsStream/fields.xml;这样做,我找不到一种方法把它转换成C,把它读成一个记忆流。内存流需要一个字节[],因此使用MemoryStream stream=new MemoryStreamEncoding.UTF8.GetBytesdoc.ToString;流位置=0;GenericPackager packager=新的GenericPackagerstream;我甚至试过MemoryStream stream=new MemoryStream encoding.UTF8.GetBytesdeneme.xml;StreamReader=新的StreamReaderstream;字符串文本=reader.ReadToEnd;但是我得到了这个异常在jpos.dll中发生了一个类型为'org.jpos.iso.ISOException'的未处理异常附加信息:读取deneme.xml时出错谁给我负1?解释原因,不要投反对票。好主意!但是现在它抛出了这个错误附加信息:org.xml.sax.SAXException:SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl not Found我通过下载apache.crimson并与其他文件一起解析到dll中解决了这个问题@普布都你就是那个男人,非常感谢。