Conatains는 매우 개방이 종료된다. 태그와 속성의 순서는 어떨까요? 순서는 동일해야하며 태그의 깊이는 무엇입니까? 템플릿과 일치하는 태그가 xml (깊이에 관계 없음)에 존재한다고 가정하면 다음 확장 방법을 사용할 수 있습니다.
public static bool SupportsTemplate(this XmlDocument xmlDoc, XmlNode template) {
bool found = true;
var nodes = template.ChildNodes;
foreach(XmlNode node in nodes){
found = xmlDoc.SelectSingleNode("//" + node.Name) == null ? false : true;
if (!found) break;
if (node.HasChildNodes)
found = xmlDoc.SupportsTemplate(node);
if (!found) break;
}
return found;
}
& 최적화되지 않은 코드 (xmlDoc.SupportsTemplate (template.DocumentElement 같은 전화)를 테스트하지 않습니다. 비슷한 구현합니다. 당신은뿐만 아니라 속성을 확인하려면이 확장 할 수 있습니다. 내가 XML 스키마 파일을 사용하여 reccommed 것
(XSD)를 사용하지 않는 것이 좋습니다. http://en.wikipedia.org/wiki/XML_schema – MadcoreTom
특정 값을 가진 특정 태그 및 속성이 있는지 확인하고 싶지만 상관하지 않습니다. 추가 태그에 대해. 또한 XML에는 이미 수정할 수없는 XSD가 있습니다. 아마도 누락 된 것일 수 있습니다. 어떻게하면 XSD를 사용할 수 있습니까? – Rishabh