次の関数は、必要なノードの値「CompanyPolicyId」を返しません。私はたくさんのことを試しましたが、それでもうまくいきません。誰もが問題になる可能性があることを知っていますか?
public void getpolicy(string rootURL, string policyNumber)
{
string basePolicyNumber = policyNumber.Remove(policyNumber.Length - 2);
basePolicyNumber = basePolicyNumber + "00";
using (WebClient client = new WebClient())
{
NetworkCredential credentials = new NetworkCredential();
credentials.UserName = AppVars.Username;
credentials.Password = AppVars.Password;
client.Credentials = credentials;
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(client.DownloadString(rootURL + basePolicyNumber));
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("zzzlocal", "http://com.zzz100.policy.data.local");
// Select the Identifier node with a 'name' attribute having an 'id' value
var node = doc.DocumentElement.SelectSingleNode("/InsurancePolicy/Indentifiers/Identifier[@name='CompanyPolicyId']", mgr);
if (node != null && node.Attributes["value"] != null)
{
// Pick out the 'value' attribute's value
var val = node.Attributes["value"].Value;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
XMLドキュメントは次のとおりです。
<InsurancePolicy xmlns:zzzlocal="com.zzz100.policy.data.local" schemaVersion="2.7" variant="multiterm">
<Identifiers>
<Identifier name="VendorPolicyId" value="AAAA"/>
<Identifier name="CompanyPolicyId" value="BBBB"/>
<Identifier name="QuoteNumber" value="CCCC"/>
<Identifier name="pxServerIndex" value="DDDD"/>
<Identifier name="PolicyID" value="EEEE"/>
</Identifiers>
</InsurancePolicy>
私は過去6時間この問題を解決しようとしてきました。正直なところ、これは最悪です。