LINQ XElement로로드 된 XHTML 파일을 가져 오려고합니다. 그러나 나는 결의안에 문제가있다. 문제는 다음과 같은 정의과 관련이있다 :커스텀 XmlUrlResolver를 사용하여 XElement에 XHTML 파일을로드하는 방법은 무엇입니까?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
내가 같은 로컬 리소스 스트림에 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd로 링크를 변환하는 오버라이드 (override) GetEntity와 사용자 지정 XmlUrlResolver 있습니다. 이것은 거의 모든 XHTML DTD에서 잘 작동합니다. 내가 실제로 해결할 수없는 유일한 것은 Uri "- // W3C // DTD XHTML 1.0 Transitional // EN"이며, 내가 무엇을해야하는지 확신 할 수 없다. 위의 코드에서 보듯이
public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
{
var resourceName = "ePub.DTD." + absoluteUri.Segments[absoluteUri.Segments.GetLength(0) - 1];
if (_resources.Contains(resourceName))
{
Stream dataStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
return dataStream;
}
return base.GetEntity(absoluteUri, role, ofObjectToReturn);
}
, 내가 해결할 수있는 일이 기본 XmlUrlResolver
에 의해 처리됩니다. 위의 링크는 - // W3C /로 시작합니다. 그러나 기본 메소드는 DirectoryNotFoundException
을 던집니다. 계속하면 XElement
이 정상적으로로드됩니다. 대신 빈 스트림을 반환하면 XElement
에 XHTML을로드하는 동안 오류가 발생합니다.
사용자 정의 XmlUrlResolver
과 같은 공개 정의를 처리 할 수있는 단서가 있습니까? 어딘가 마이크로 소프트 보드에서 도난
또는 공용 ID를 보이는 시스템 ID로 확인할 수도 있습니다.로드 또는 해결 중에 예외가 발생하지 않으면 올바르게 작동합니다. – Jaapjan