首页 > 解决方案 > XML: 'src' 不是一个意外的标记。预期的标记是'='

问题描述

我有一个在 SQL 2008 上运行的 VS 2008 中开发的 DTSX 代码。现在我需要使用 VS 2015 迁移到 2017。这个 DTSX 的任务是使用他们提供的 Web 服务从第三方网站获取 XML。现在我总是得到这个错误:

'src' 是一个意外的标记。预期的标记是“=”。第 8 行,第 7 位。

我尝试了加密包。

public void Main()

{

    String requestUrl = `"https://myTemlurl/XMLj/X-ShipmentStatus";`

    Uri conwayUri = new Uri(requestUrl);

    String username = "userABC";

    String password = "pwd1234";

    String authType = "basic";

    String tracking = "VEG123456";

    NetworkCredential myCred = new NetworkCredential(username, password);
    CredentialCache myCache = new CredentialCache();
    myCache.Add(conwayUri, authType, myCred);

    string today = DateTime.Today.Month.ToString() + "/" + DateTime.Today.Day.ToString() + "/" + DateTime.Today.Year.ToString().Remove(0, 2);

    ArrayList trackNums = new ArrayList();
    `trackNums.Add(tracking);`

    String xmlRequest = "";
    xmlRequest += "<ShipmentStatusRequest testmode=\"N\">";
    xmlRequest += "<CustomerNumber>493116471</CustomerNumber>";
    xmlRequest += "<ReportType>M</ReportType>";
    xmlRequest += "<ShipmentRole>B</ShipmentRole>";
    xmlRequest += "</ShipmentStatusRequest>";

    // Encode the Request String and set up the POST data
    xmlRequest = HttpUtility.UrlEncode(xmlRequest);
    String postData = "ShipmentStatusRequest=" + xmlRequest;
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte [] postBuffer = encoding.GetBytes(postData);

    // Set up the HTTP Request
    HttpWebRequest wReq = (HttpWebRequest) WebRequest.Create(conwayUri);
    wReq.ContentType="application/x-www-form-urlencoded";
    wReq.ContentLength = postBuffer.Length;
    wReq.Method="POST";
    wReq.Timeout=180000;
    wReq.KeepAlive = false;
    wReq.ReadWriteTimeout = 180000;
    wReq.Credentials = myCache;
    wReq.PreAuthenticate = true;

    Stream reqStream = null;
    reqStream = wReq.GetRequestStream();
    reqStream.Write(postBuffer,0,postBuffer.Length);
    reqStream.Close();  

    try
    {
        HttpWebResponse wResp = (HttpWebResponse)wReq.GetResponse();
        Stream respStream = wResp.GetResponseStream();
        XmlTextReader xmlReader = new XmlTextReader(respStream);
        XmlDocument xmlStatus = new XmlDocument();
        xmlStatus.Load(xmlReader);

        //The entire XML Response String
        String respString = xmlStatus.InnerXml;
        respString = respString.Replace("<PRONmbr>", "</Shipment><Shipment><PRONmbr>");
        respString = respString.Replace("</ShipmentStatusResponse>", "</Shipment></ShipmentStatusResponse>");
        respString = respString.Replace("?dest=privacy.\"></Shipment>", "?dest=privacy.\">");

        Dts.Variables["User::Results"].Value = respString;

        // Clean up resources
        //reqStream.Close();
        xmlReader.Close();
        respStream.Close();
        wResp.Close();
        Dts.TaskResult = (int)ScriptResults.Success;
    }
    catch(Exception ex)
    {
        Dts.TaskResult = (int)ScriptResults.Failure;                
    }
}

我想知道我哪里出错了。谢谢

标签: ssis

解决方案


推荐阅读