0
그래서 xmlDocument가 있고 신용 점수가 추가되었는지 확인해야합니다. 이렇게하려면 xmlNodes.SelectSingleNode를 사용하고 innerText를 확인하고 있습니다.XML 문서에서 노드를 선택 하시겠습니까?
문제점 : 노드 중 하나에 실제 노드 이름에 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 //에 대해 null이됩니까? –
맨 위 요소 문서를보십시오. 그것 (또는 다른 요소)에'xmlns' 속성이 있습니까? 그렇다면이 의사 속성은 XPath의 null 네임 스페이스와 다른 기본 네임 스페이스를 선언합니다. 그것이 빈 결과를 얻는 이유입니다. 네임 스페이스는 각 요소 이름의 일부입니다. –