Я делаю очень простое дело. Я пытаюсь получить узел из небольшого файла XML.
<?xml version="1.0" encoding="UTF-8" ?>
<SAMLConfiguration xmlns="urn:componentspace:SAML:2.0:configuration">
<IdentityProvider Name="IdpNameInSPForIsuer"
Description="SecureAuth"
LocalCertificateFile=""
LocalCertificatePassword=""/>
<ServiceProviderProfiles>
<ServiceProvider NameIdentifier ="SPIssuerName"
ExpectsSignatureVerification="true"
ExpectsSignedResponse="false"
Certificate="sharedpubliccsert.cer"
DigestMethod="SAMLIdentifiers.DigestMethods.SHA1"
SignatureMethod="SAMLIdentifiers.SignatureMethods.RSA_SHA1"
SingleLogoutServiceUrl="https://serviceprovider/slo"
SendResponseBy="HTTP-Redirect" />
</ServiceProviderProfiles>
</SAMLConfiguration>
Я пытаюсь получить ServiceProvider. Ниже приведен код C #, который у меня есть:
строка parent = "ServiceProviderProfiles"; строка children = "ServiceProvider";
var nodePath = string.Concat (@ "//", родитель, @ "/", дети);
var xmlNode = xmlDocument.SelectSingleNode (nodePath);
Когда я отлаживаю, xmlNode имеет значение null. Какие проблемы с моим кодом приводят к нулевому значению xmlNode?
xmlns="urn:componentspace:SAML:2.0:configuration"
, как показано в Использование Xpath с пространством имен по умолчанию в C # и XmlDocument.SelectSingleNode и проблема xmlNamespace и SelectSingleNode, возвращающая значение null для заведомо хорошей xml путь к узлу с использованием XPath. - person dbc   schedule 08.09.2017