使用命名空间从 Soap XML 中提取数据
Extract Data from Soap XML with Namespaces
我正在尝试提取包含 的数据
在我拥有的 SOAP 响应 XML 中,它在使用 C# 的 SSIS 脚本组件中包含多个变量命名空间。
我的 XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:getCacheEntryResponse xmlns:ns3="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService" xmlns:ns2="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef" xmlns:ns4="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialDecision" xmlns:ns5="http://vedaadvantage.com/dp3/service/fault" xmlns:ns6="http://com/vedaadvantage/dp3/businessDecisionResultOverride" xmlns:ns7="http://com.vedaadvantage/dp3/connectors" xmlns:ns8="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore" xmlns:ns9="http://com.vedaadvantage/dp3/connectors/vedaxml/individualalerts">
<ns3:CacheEntry>
<cacheEntryData>&lt;Response xmlns="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore" xmlns:b="http://com.vedaadvantage/dp3/connectors"&gt;&lt;enquiryReport&gt;&lt;primaryMatch&gt;&lt;bureauReference&gt;805917662&lt;/bureauReference&gt;&lt;individual&gt;&lt;individualName&gt;&lt;familyName&gt;MOHAMMADINEJAD&lt;/familyName&gt;&lt;firstGivenName&gt;ALI&lt;/firstGivenName&gt;&lt;createDate&gt;2014-07-15&lt;/createDate&gt;&lt;/individualName&gt;&lt;gender&gt;male&lt;/gender&gt;&lt;dateOfBirth&gt;1982-01-06&lt;/dateOfBirth&gt;&lt;driversLicenceNumber&gt;&lt;countryCodes&gt;AU&lt;/countryCodes&gt;&lt;value/&gt;&lt;/driversLicenceNumber&gt;&lt;b:address&gt;&lt;b:unitNumber/&gt;&lt;b:streetNumber&gt;43&lt;/b:streetNumber&gt;&lt;b:property&gt;43&lt;/b:property&gt;&lt;b:streetName&gt;KING EDWARD&lt;/b:streetName&gt;&lt;b:streetType&gt;AVE&lt;/b:streetType&gt;&lt;b:suburb&gt;ALBION&lt;/b:suburb&gt;&lt;b:city/&gt;&lt;b:state&gt;VIC&lt;/b:state&gt;&lt;b:postcode&gt;3020&lt;/b:postcode&gt;&lt;b:countryCode&gt;AU&lt;/b:countryCode&gt;&lt;b:addressType&gt;residentialCurrent&lt;/b:addressType&gt;&lt;b:createDate&gt;2015-09-04&lt;/b:createDate&gt;&lt;/b:address&gt;&lt;/individual&gt;&lt;individualConsumerCreditFile&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;accountType&gt;UA&lt;/accountType&gt;&lt;value&gt;Utilities&lt;/value&gt;&lt;/accountType&gt;&lt;role&gt;&lt;consumerRoleTypeCodesResponse&gt;principal&lt;/consumerRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;AGL ENGY SALES &amp; MKTG LTD&lt;/creditEnquirer&gt;&lt;clientReference/&gt;&lt;consumerCreditEnquiryTypeResponse&gt;creditApplication&lt;/consumerCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2015-09-04&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;accountType&gt;TC&lt;/accountType&gt;&lt;value&gt;Telecommunication Service&lt;/value&gt;&lt;/accountType&gt;&lt;role&gt;&lt;consumerRoleTypeCodesResponse&gt;principal&lt;/consumerRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;VODAFONE DECISION POINT&lt;/creditEnquirer&gt;&lt;clientReference&gt;1-DCQJWZG&lt;/clientReference&gt;&lt;consumerCreditEnquiryTypeResponse&gt;creditApplication&lt;/consumerCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2014-07-15&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;/individualConsumerCreditFile&gt;&lt;individualCommercialCreditFile&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;commercialAccountTypeCodesResponse&gt;CR&lt;/commercialAccountTypeCodesResponse&gt;&lt;value&gt;Commercial Rental&lt;/value&gt;&lt;/accountType&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;role&gt;&lt;commercialRoleTypeCodesResponse&gt;principal&lt;/commercialRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;GOGETTA EQUIPMENT FUNDING&lt;/creditEnquirer&gt;&lt;clientReference/&gt;&lt;commercialCreditEnquiryTypeResponse&gt;creditEnquiry&lt;/commercialCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2016-04-04&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;/individualCommercialCreditFile&gt;&lt;matchType&gt;strong&lt;/matchType&gt;&lt;/primaryMatch&gt;&lt;summaryData&gt;&lt;summary&gt;&lt;name&gt;enquiry-amount&lt;/name&gt;&lt;summaryType&gt;amount&lt;/summaryType&gt;&lt;currencyCode&gt;AUD&lt;/currencyCode&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;age-of-file&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;20&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;age-of-subject&lt;/name&gt;&lt;summaryType&gt;years&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;34&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-at-address&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;7&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-at-employer&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value/&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;total-value-of-outstanding-defaults&lt;/name&gt;&lt;summaryType&gt;amount&lt;/summaryType&gt;&lt;currencyCode&gt;AUD&lt;/currencyCode&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-24-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-24-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-36-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-36-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-since-last-default&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value/&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;total-credit-enquiries&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;3&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-1&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-3&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-6&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;2&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-60&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;3&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-since-last-enquiry&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;7&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-defaults&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-defaults-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;2&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries-6&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;authorised-agents-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;authorised-agents-enquiries-60&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;directorships-current&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;directorships-previous&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;judgements&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;proprietorships&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;adverse-on-file&lt;/name&gt;&lt;summaryType/&gt;&lt;currencyCode/&gt;&lt;value&gt;No&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;file-notes&lt;/name&gt;&lt;summaryType/&gt;&lt;currencyCode/&gt;&lt;value&gt;No&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;known-identities&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;bankruptcies&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;writs-and-summons&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;external-administration-director&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;/summaryData&gt;&lt;scoreData&gt;&lt;score&gt;&lt;scorecardModel&gt;0303&lt;/scorecardModel&gt;&lt;relativeRisk&gt;2.3&lt;/relativeRisk&gt;&lt;vedascore1_1Index&gt;4.0863&lt;/vedascore1_1Index&gt;&lt;applicantOdds&gt;26.9&lt;/applicantOdds&gt;&lt;contributingFactor&gt;&lt;impact&gt;Greatly Decreases Risk&lt;/impact&gt;&lt;value&gt;Lack of Consumer Adverse Information&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Moderately Decreases Risk&lt;/impact&gt;&lt;value&gt;Number of Consumer Credit Applications&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Marginally Decreases Risk&lt;/impact&gt;&lt;value&gt;Individual Shopping Pattern&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Marginally Decreases Risk&lt;/impact&gt;&lt;value&gt;Current and Historic Credit Type Sought&lt;/value&gt;&lt;/contributingFactor&gt;&lt;population&gt;&lt;populationOdds&gt;11.9&lt;/populationOdds&gt;&lt;/population&gt;&lt;vedaScore&gt;675&lt;/vedaScore&gt;&lt;percentile&gt;30&lt;/percentile&gt;&lt;scoreType&gt;VS 1.1 COMMERCIAL + CONSUMER&lt;/scoreType&gt;&lt;/score&gt;&lt;/scoreData&gt;&lt;/enquiryReport&gt;&lt;/Response&gt;</cacheEntryData>
<connectorGroup>vedaxml</connectorGroup>
<connectorId>vedascore</connectorId>
<connectorVersion>2014-08-28</connectorVersion>
<request>&lt;Request xmlns:ns2="http://com.vedaadvantage/dp3/connectors" xmlns="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore"&gt;&lt;product&gt;&lt;name&gt;vedascoreFinancialCommercialPlusConsumer1_1&lt;/name&gt;&lt;summary&gt;true&lt;/summary&gt;&lt;/product&gt;&lt;individual&gt;&lt;individualName&gt;&lt;familyName&gt;Mohammadinejad&lt;/familyName&gt;&lt;firstGivenName&gt;Ali&lt;/firstGivenName&gt;&lt;otherGivenName&gt;&lt;/otherGivenName&gt;&lt;/individualName&gt;&lt;gender&gt;unknown&lt;/gender&gt;&lt;dateOfBirth&gt;1982-01-06Z&lt;/dateOfBirth&gt;&lt;driversLicenceNumber&gt;&lt;countryCodes&gt;AU&lt;/countryCodes&gt;&lt;value&gt;06011982&lt;/value&gt;&lt;/driversLicenceNumber&gt;&lt;ns2:address&gt;&lt;ns2:addressType&gt;residentialCurrent&lt;/ns2:addressType&gt;&lt;ns2:unitNumber&gt;3 U&lt;/ns2:unitNumber&gt;&lt;ns2:streetNumber&gt;43&lt;/ns2:streetNumber&gt;&lt;ns2:property&gt;43&lt;/ns2:property&gt;&lt;ns2:streetName&gt;KING EDWARD&lt;/ns2:streetName&gt;&lt;ns2:streetType&gt;AVE&lt;/ns2:streetType&gt;&lt;ns2:suburb&gt;ALBION&lt;/ns2:suburb&gt;&lt;ns2:state&gt;VIC&lt;/ns2:state&gt;&lt;ns2:postcode&gt;3020&lt;/ns2:postcode&gt;&lt;ns2:countryCode&gt;AU&lt;/ns2:countryCode&gt;&lt;/ns2:address&gt;&lt;role&gt;principal&lt;/role&gt;&lt;/individual&gt;&lt;enquiry&gt;&lt;accountType&gt;&lt;accountType&gt;CR&lt;/accountType&gt;&lt;/accountType&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType&gt;AUD&lt;/currencyCodeType&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;enquiryType&gt;creditEnquiry&lt;/enquiryType&gt;&lt;/enquiry&gt;&lt;customerReference&gt;GoGetta&lt;/customerReference&gt;&lt;/Request&gt;</request>
</ns3:CacheEntry>
</ns3:getCacheEntryResponse>
</soap:Body>
</soap:Envelope>
我已经使用 http://xmltocsharp.azurewebsites.net/ 生成我的 C# 类,它看起来像这样:
[XmlRoot(ElementName = "CacheEntry", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public class CacheEntry
{
[XmlElement(ElementName = "cacheEntryData")]
public string CacheEntryData { get; set; }
[XmlElement(ElementName = "connectorGroup")]
public string ConnectorGroup { get; set; }
[XmlElement(ElementName = "connectorId")]
public string ConnectorId { get; set; }
[XmlElement(ElementName = "connectorVersion")]
public string ConnectorVersion { get; set; }
[XmlElement(ElementName = "request")]
public string Request { get; set; }
}
[XmlRoot(ElementName = "getCacheEntryResponse", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public class GetCacheEntryResponse
{
[XmlElement(ElementName = "CacheEntry", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public CacheEntry CacheEntry { get; set; }
[XmlAttribute(AttributeName = "ns3", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns3 { get; set; }
[XmlAttribute(AttributeName = "ns2", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns2 { get; set; }
[XmlAttribute(AttributeName = "ns4", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns4 { get; set; }
[XmlAttribute(AttributeName = "ns5", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns5 { get; set; }
[XmlAttribute(AttributeName = "ns6", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns6 { get; set; }
[XmlAttribute(AttributeName = "ns7", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns7 { get; set; }
[XmlAttribute(AttributeName = "ns8", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns8 { get; set; }
[XmlAttribute(AttributeName = "ns9", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns9 { get; set; }
}
[XmlRoot(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Body
{
[XmlElement(ElementName = "getCacheEntryResponse", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public GetCacheEntryResponse GetCacheEntryResponse { get; set; }
}
[XmlRoot(ElementName = "Envelope", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Envelope
{
[XmlElement(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public Body Body { get; set; }
[XmlAttribute(AttributeName = "soap", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Soap { get; set; }
}
这是我尝试提取 cacheEntryData 字段的方法,但它没有检索节点列表 (xnList) 并且它没有在我的 foreach 语句中返回任何内容。
public override void CreateNewOutputRows()
{
string soap_resp = Variables.getCacheEntryRspXML.ToString();
soap_resp = soap_resp.Replace("\"\"", "\"");
System.Windows.Forms.MessageBox.Show(soap_resp);
XmlDocument agv = new XmlDocument();
agv.LoadXml(soap_resp);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(agv.NameTable);
nsmgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nsmgr.AddNamespace("ns3", "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService");
XmlNodeList xnList = agv.SelectNodes("//ns3:CacheEntry", nsmgr);
foreach (XmlNode xn in xnList)
{
var cacheEntryData = xn["ns3:CacheEntry"].InnerText;
System.Windows.Forms.MessageBox.Show(Convert.ToString(cacheEntryData));
}
}
这很不寻常。代码看起来是 html 编码的,所以我不得不 html 解码。
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
using System.Net;
namespace ConsoleApplication73
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string xml = File.ReadAllText(FILENAME);
CreateNewOutputRows(xml);
}
static public void CreateNewOutputRows(string xml)
{
XDocument doc = XDocument.Parse(xml);
XElement cacheEntryData = doc.Descendants().Where(x => x.Name.LocalName == "cacheEntryData").FirstOrDefault();
string cacheEntryDataXml = WebUtility.HtmlDecode(cacheEntryData.ToString());
XElement cacheEntryData2 = XElement.Parse(cacheEntryDataXml);
}
}
}
我正在尝试提取包含 的数据 在我拥有的 SOAP 响应 XML 中,它在使用 C# 的 SSIS 脚本组件中包含多个变量命名空间。
我的 XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:getCacheEntryResponse xmlns:ns3="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService" xmlns:ns2="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef" xmlns:ns4="http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialDecision" xmlns:ns5="http://vedaadvantage.com/dp3/service/fault" xmlns:ns6="http://com/vedaadvantage/dp3/businessDecisionResultOverride" xmlns:ns7="http://com.vedaadvantage/dp3/connectors" xmlns:ns8="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore" xmlns:ns9="http://com.vedaadvantage/dp3/connectors/vedaxml/individualalerts">
<ns3:CacheEntry>
<cacheEntryData>&lt;Response xmlns="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore" xmlns:b="http://com.vedaadvantage/dp3/connectors"&gt;&lt;enquiryReport&gt;&lt;primaryMatch&gt;&lt;bureauReference&gt;805917662&lt;/bureauReference&gt;&lt;individual&gt;&lt;individualName&gt;&lt;familyName&gt;MOHAMMADINEJAD&lt;/familyName&gt;&lt;firstGivenName&gt;ALI&lt;/firstGivenName&gt;&lt;createDate&gt;2014-07-15&lt;/createDate&gt;&lt;/individualName&gt;&lt;gender&gt;male&lt;/gender&gt;&lt;dateOfBirth&gt;1982-01-06&lt;/dateOfBirth&gt;&lt;driversLicenceNumber&gt;&lt;countryCodes&gt;AU&lt;/countryCodes&gt;&lt;value/&gt;&lt;/driversLicenceNumber&gt;&lt;b:address&gt;&lt;b:unitNumber/&gt;&lt;b:streetNumber&gt;43&lt;/b:streetNumber&gt;&lt;b:property&gt;43&lt;/b:property&gt;&lt;b:streetName&gt;KING EDWARD&lt;/b:streetName&gt;&lt;b:streetType&gt;AVE&lt;/b:streetType&gt;&lt;b:suburb&gt;ALBION&lt;/b:suburb&gt;&lt;b:city/&gt;&lt;b:state&gt;VIC&lt;/b:state&gt;&lt;b:postcode&gt;3020&lt;/b:postcode&gt;&lt;b:countryCode&gt;AU&lt;/b:countryCode&gt;&lt;b:addressType&gt;residentialCurrent&lt;/b:addressType&gt;&lt;b:createDate&gt;2015-09-04&lt;/b:createDate&gt;&lt;/b:address&gt;&lt;/individual&gt;&lt;individualConsumerCreditFile&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;accountType&gt;UA&lt;/accountType&gt;&lt;value&gt;Utilities&lt;/value&gt;&lt;/accountType&gt;&lt;role&gt;&lt;consumerRoleTypeCodesResponse&gt;principal&lt;/consumerRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;AGL ENGY SALES &amp; MKTG LTD&lt;/creditEnquirer&gt;&lt;clientReference/&gt;&lt;consumerCreditEnquiryTypeResponse&gt;creditApplication&lt;/consumerCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2015-09-04&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;accountType&gt;TC&lt;/accountType&gt;&lt;value&gt;Telecommunication Service&lt;/value&gt;&lt;/accountType&gt;&lt;role&gt;&lt;consumerRoleTypeCodesResponse&gt;principal&lt;/consumerRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;VODAFONE DECISION POINT&lt;/creditEnquirer&gt;&lt;clientReference&gt;1-DCQJWZG&lt;/clientReference&gt;&lt;consumerCreditEnquiryTypeResponse&gt;creditApplication&lt;/consumerCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2014-07-15&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;/individualConsumerCreditFile&gt;&lt;individualCommercialCreditFile&gt;&lt;creditEnquiry&gt;&lt;accountType&gt;&lt;commercialAccountTypeCodesResponse&gt;CR&lt;/commercialAccountTypeCodesResponse&gt;&lt;value&gt;Commercial Rental&lt;/value&gt;&lt;/accountType&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType/&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;role&gt;&lt;commercialRoleTypeCodesResponse&gt;principal&lt;/commercialRoleTypeCodesResponse&gt;&lt;/role&gt;&lt;coBorrower/&gt;&lt;creditEnquirer&gt;GOGETTA EQUIPMENT FUNDING&lt;/creditEnquirer&gt;&lt;clientReference/&gt;&lt;commercialCreditEnquiryTypeResponse&gt;creditEnquiry&lt;/commercialCreditEnquiryTypeResponse&gt;&lt;enquiryDate&gt;2016-04-04&lt;/enquiryDate&gt;&lt;/creditEnquiry&gt;&lt;/individualCommercialCreditFile&gt;&lt;matchType&gt;strong&lt;/matchType&gt;&lt;/primaryMatch&gt;&lt;summaryData&gt;&lt;summary&gt;&lt;name&gt;enquiry-amount&lt;/name&gt;&lt;summaryType&gt;amount&lt;/summaryType&gt;&lt;currencyCode&gt;AUD&lt;/currencyCode&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;age-of-file&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;20&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;age-of-subject&lt;/name&gt;&lt;summaryType&gt;years&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;34&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-at-address&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;7&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-at-employer&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value/&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;total-value-of-outstanding-defaults&lt;/name&gt;&lt;summaryType&gt;amount&lt;/summaryType&gt;&lt;currencyCode&gt;AUD&lt;/currencyCode&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-12-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-24-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-24-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-36-paid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;defaults-36-unpaid&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-since-last-default&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value/&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;total-credit-enquiries&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;3&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-1&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-3&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-6&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;2&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;credit-enquiries-60&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;3&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;time-since-last-enquiry&lt;/name&gt;&lt;summaryType&gt;months&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;7&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-defaults&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-defaults-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;2&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries-6&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;telco-and-utility-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;authorised-agents-enquiries-12&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;authorised-agents-enquiries-60&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;directorships-current&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;directorships-previous&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;judgements&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;proprietorships&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;adverse-on-file&lt;/name&gt;&lt;summaryType/&gt;&lt;currencyCode/&gt;&lt;value&gt;No&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;file-notes&lt;/name&gt;&lt;summaryType/&gt;&lt;currencyCode/&gt;&lt;value&gt;No&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;known-identities&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;1&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;bankruptcies&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;writs-and-summons&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;summary&gt;&lt;name&gt;external-administration-director&lt;/name&gt;&lt;summaryType&gt;count&lt;/summaryType&gt;&lt;currencyCode/&gt;&lt;value&gt;0&lt;/value&gt;&lt;/summary&gt;&lt;/summaryData&gt;&lt;scoreData&gt;&lt;score&gt;&lt;scorecardModel&gt;0303&lt;/scorecardModel&gt;&lt;relativeRisk&gt;2.3&lt;/relativeRisk&gt;&lt;vedascore1_1Index&gt;4.0863&lt;/vedascore1_1Index&gt;&lt;applicantOdds&gt;26.9&lt;/applicantOdds&gt;&lt;contributingFactor&gt;&lt;impact&gt;Greatly Decreases Risk&lt;/impact&gt;&lt;value&gt;Lack of Consumer Adverse Information&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Moderately Decreases Risk&lt;/impact&gt;&lt;value&gt;Number of Consumer Credit Applications&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Marginally Decreases Risk&lt;/impact&gt;&lt;value&gt;Individual Shopping Pattern&lt;/value&gt;&lt;/contributingFactor&gt;&lt;contributingFactor&gt;&lt;impact&gt;Marginally Decreases Risk&lt;/impact&gt;&lt;value&gt;Current and Historic Credit Type Sought&lt;/value&gt;&lt;/contributingFactor&gt;&lt;population&gt;&lt;populationOdds&gt;11.9&lt;/populationOdds&gt;&lt;/population&gt;&lt;vedaScore&gt;675&lt;/vedaScore&gt;&lt;percentile&gt;30&lt;/percentile&gt;&lt;scoreType&gt;VS 1.1 COMMERCIAL + CONSUMER&lt;/scoreType&gt;&lt;/score&gt;&lt;/scoreData&gt;&lt;/enquiryReport&gt;&lt;/Response&gt;</cacheEntryData>
<connectorGroup>vedaxml</connectorGroup>
<connectorId>vedascore</connectorId>
<connectorVersion>2014-08-28</connectorVersion>
<request>&lt;Request xmlns:ns2="http://com.vedaadvantage/dp3/connectors" xmlns="http://com.vedaadvantage/dp3/connectors/vedaxml/vedascore"&gt;&lt;product&gt;&lt;name&gt;vedascoreFinancialCommercialPlusConsumer1_1&lt;/name&gt;&lt;summary&gt;true&lt;/summary&gt;&lt;/product&gt;&lt;individual&gt;&lt;individualName&gt;&lt;familyName&gt;Mohammadinejad&lt;/familyName&gt;&lt;firstGivenName&gt;Ali&lt;/firstGivenName&gt;&lt;otherGivenName&gt;&lt;/otherGivenName&gt;&lt;/individualName&gt;&lt;gender&gt;unknown&lt;/gender&gt;&lt;dateOfBirth&gt;1982-01-06Z&lt;/dateOfBirth&gt;&lt;driversLicenceNumber&gt;&lt;countryCodes&gt;AU&lt;/countryCodes&gt;&lt;value&gt;06011982&lt;/value&gt;&lt;/driversLicenceNumber&gt;&lt;ns2:address&gt;&lt;ns2:addressType&gt;residentialCurrent&lt;/ns2:addressType&gt;&lt;ns2:unitNumber&gt;3 U&lt;/ns2:unitNumber&gt;&lt;ns2:streetNumber&gt;43&lt;/ns2:streetNumber&gt;&lt;ns2:property&gt;43&lt;/ns2:property&gt;&lt;ns2:streetName&gt;KING EDWARD&lt;/ns2:streetName&gt;&lt;ns2:streetType&gt;AVE&lt;/ns2:streetType&gt;&lt;ns2:suburb&gt;ALBION&lt;/ns2:suburb&gt;&lt;ns2:state&gt;VIC&lt;/ns2:state&gt;&lt;ns2:postcode&gt;3020&lt;/ns2:postcode&gt;&lt;ns2:countryCode&gt;AU&lt;/ns2:countryCode&gt;&lt;/ns2:address&gt;&lt;role&gt;principal&lt;/role&gt;&lt;/individual&gt;&lt;enquiry&gt;&lt;accountType&gt;&lt;accountType&gt;CR&lt;/accountType&gt;&lt;/accountType&gt;&lt;enquiryAmount&gt;&lt;currencyCodeType&gt;AUD&lt;/currencyCodeType&gt;&lt;value&gt;25000&lt;/value&gt;&lt;/enquiryAmount&gt;&lt;enquiryType&gt;creditEnquiry&lt;/enquiryType&gt;&lt;/enquiry&gt;&lt;customerReference&gt;GoGetta&lt;/customerReference&gt;&lt;/Request&gt;</request>
</ns3:CacheEntry>
</ns3:getCacheEntryResponse>
</soap:Body>
</soap:Envelope>
我已经使用 http://xmltocsharp.azurewebsites.net/ 生成我的 C# 类,它看起来像这样:
[XmlRoot(ElementName = "CacheEntry", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public class CacheEntry
{
[XmlElement(ElementName = "cacheEntryData")]
public string CacheEntryData { get; set; }
[XmlElement(ElementName = "connectorGroup")]
public string ConnectorGroup { get; set; }
[XmlElement(ElementName = "connectorId")]
public string ConnectorId { get; set; }
[XmlElement(ElementName = "connectorVersion")]
public string ConnectorVersion { get; set; }
[XmlElement(ElementName = "request")]
public string Request { get; set; }
}
[XmlRoot(ElementName = "getCacheEntryResponse", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public class GetCacheEntryResponse
{
[XmlElement(ElementName = "CacheEntry", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public CacheEntry CacheEntry { get; set; }
[XmlAttribute(AttributeName = "ns3", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns3 { get; set; }
[XmlAttribute(AttributeName = "ns2", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns2 { get; set; }
[XmlAttribute(AttributeName = "ns4", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns4 { get; set; }
[XmlAttribute(AttributeName = "ns5", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns5 { get; set; }
[XmlAttribute(AttributeName = "ns6", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns6 { get; set; }
[XmlAttribute(AttributeName = "ns7", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns7 { get; set; }
[XmlAttribute(AttributeName = "ns8", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns8 { get; set; }
[XmlAttribute(AttributeName = "ns9", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Ns9 { get; set; }
}
[XmlRoot(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Body
{
[XmlElement(ElementName = "getCacheEntryResponse", Namespace = "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService")]
public GetCacheEntryResponse GetCacheEntryResponse { get; set; }
}
[XmlRoot(ElementName = "Envelope", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Envelope
{
[XmlElement(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public Body Body { get; set; }
[XmlAttribute(AttributeName = "soap", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Soap { get; set; }
}
这是我尝试提取 cacheEntryData 字段的方法,但它没有检索节点列表 (xnList) 并且它没有在我的 foreach 语句中返回任何内容。
public override void CreateNewOutputRows()
{
string soap_resp = Variables.getCacheEntryRspXML.ToString();
soap_resp = soap_resp.Replace("\"\"", "\"");
System.Windows.Forms.MessageBox.Show(soap_resp);
XmlDocument agv = new XmlDocument();
agv.LoadXml(soap_resp);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(agv.NameTable);
nsmgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nsmgr.AddNamespace("ns3", "http://com.vedaadvantage/dp3/Enterprise/StandardTradeCreditCommercial/SilverChef/IndividualCommercialService");
XmlNodeList xnList = agv.SelectNodes("//ns3:CacheEntry", nsmgr);
foreach (XmlNode xn in xnList)
{
var cacheEntryData = xn["ns3:CacheEntry"].InnerText;
System.Windows.Forms.MessageBox.Show(Convert.ToString(cacheEntryData));
}
}
这很不寻常。代码看起来是 html 编码的,所以我不得不 html 解码。
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
using System.Net;
namespace ConsoleApplication73
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string xml = File.ReadAllText(FILENAME);
CreateNewOutputRows(xml);
}
static public void CreateNewOutputRows(string xml)
{
XDocument doc = XDocument.Parse(xml);
XElement cacheEntryData = doc.Descendants().Where(x => x.Name.LocalName == "cacheEntryData").FirstOrDefault();
string cacheEntryDataXml = WebUtility.HtmlDecode(cacheEntryData.ToString());
XElement cacheEntryData2 = XElement.Parse(cacheEntryDataXml);
}
}
}