임의의 일반 텍스트와 올바른 형식의 XML 요소의 세그먼트가 포함 된 텍스트 스트림이 있습니다. 어떻게 그것을 읽고 xml 요소 만 추출 할 수 있습니까? ConformanceLevel이 Fragment로 설정된 XmlReader는 형식이 잘못된 xml 인 일반 텍스트를 만날 때도 예외를 throw합니다.XML과 일반 텍스트가 혼합 된 스트림에서 읽기
아이디어가 있으십니까? 감사합니다
여기에 지금까지 내 코드입니다 : 여기
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
using (XmlReader reader = XmlReader.Create(stream, settings))
while (!reader.EOF)
{
reader.MoveToContent();
XmlDocument doc = new XmlDocument();
doc.Load(reader.ReadSubtree());
reader.ReadEndElement();
}
는 샘플 스트림의 내용이고 내가 곧 길이하여 여부를 제어 할 수 없습니다 :
Found two objects:
Object a
<object>
<name>a</name>
<description></description>
</object>
Object b
<object>
<name>b</name>
<description></description>
</object>
일반 텍스트가있는 경우 XML이 아닙니다. Xml로 구문 분석하지 마십시오. 소스의 형식이 더 정확하게 설명 할 수 있습니까? 그리고 아마도 HtmlAgilityPack이 당신을 도울 수 있습니다, 그것은 노드와 일반 텍스트의 혼합 인 Html을 구문 분석 할 수 있습니다. –
나는 그것이 그렇지 않다는 것을 알고있다, 그렇지 않으면 이것은 훨씬 쉬웠을 것이다! 샘플 스트림 컨텐트를 추가했습니다. 여기에서 색상 강조 표시를 끄는 방법을 모릅니다. 죄송합니다. – veezi
구문 강조 표시의 경우,' '(도움말 더 많은 정보를보십시오). 소스 스트림과 관련하여 HtmlAgility 팩을 사용해보십시오. 아니면 평범한 텍스트인지, 무엇이 xml인지 알 수있는 확실한 방법을 알고 있습니까 (예 : 텍스트 1 개, XML 노드 1 개, 텍스트 1 개, XML 노드 1 개, 등). –