0
私はxmlDocumentを持っており、クレジットスコアが追加されたかどうかを確認する必要があります。これを行うには、xmlNodes.SelectSingleNodeを使用して、innerTextをチェックしています。XML文書内からノードを選択していますか?
私の問題はこれです:ノードの1つに実際のノード名にIDフィールドがあります。だから私はC#がノード名の一部としてそれを解釈していると思います。
public void DeperPostAppend()
{
DirectoryInfo CompDir = new DirectoryInfo(FilePrep.CompletedDirectory);
foreach (FileInfo File in CompDir.GetFiles())
{
// Load xml documents for sorting
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(File.FullName);
}
catch
{
if (File.Extension != ".xml")
return;
}
//XmlNode auto = xmlDoc.SelectSingleNode("//ACORD//InsuranceSvcRq//PersAutoPolicyQuoteInqRq");
XmlNode home = xmlDoc.SelectSingleNode("//ACORD//InsuranceSvcRq//HomePolicyQuoteInqRq");
XmlNode creditAuto = xmlDoc.SelectSingleNode("//ACORD//InsuranceSvcRq//PersAutoPolicyQuoteInqRq//PersPolicy//CreditScoreInfo//CreditScore");
XmlNode creditHome = xmlDoc.SelectSingleNode("//ACORD//InsuranceSvcRq//HomePolicyQuoteInqRq//PersPolicy//CreditScoreInfo//CreditScore");
//if file is type home quote
if (File.Extension == ".xml" && creditHome != null)
{
if (creditHome.InnerText != "ERR" || creditHome.InnerText != "NOH")
{
DeperHome();
}
}
//If file is type Auto Quote
else if (File.Extension == ".xml" && creditAuto != null)
{
if (creditAuto.InnerText != "ERR" || creditAuto.InnerText != "NOH")
{
DeperAuto();
}
}
}
}//end DeperPostAppend
// ACORD // InsuranceSvcRq // HomePolicyQuoteInqRq // PersPolicy // CreditScoreInfo // CreditScore
PersPolicy問題がどこにあるかです。ノードは文書上でこのように見えます。
<PersPolicy id="AE4562BEE086A92470D4">
すべてのドキュメントが変更され、何千ものドキュメントが処理されるため、id部分を無視します。
を次のように私はそれはあなたのidフィールドのような属性を持つ任意の問題があってはならないノードを処理するためのクラスを使用することにしました。 XMLのダミーバージョンを投稿できますか?また、あなたはこの '// ACORD // InsuranceSvcRq // HomePolicyQuoteInqRq // 'のノードを取得できますか?そうであれば、この' // ACORD // InsuranceSvcRq // HomePolicyQuoteInqRq // 'のためにヌルになりますか? –
最上位の要素文書を見てください。それ(または他の要素)に 'xmlns'属性がありますか?その場合、この擬似属性は、XPathのヌル名前空間とは異なるデフォルトの名前空間を宣言します。だからあなたは空の結果を得ているのです。名前空間は各要素の名前の一部です。 –