2010-03-30 5 views
6

C#에서 일부 gml 파일을 읽는 데 문제가 있습니다. 내 파일은 스키마 또는 네임 스페이스를 가지고이 질문에서 파일과 같은하지 않습니다C#에서 gml 읽기 #

Parsing GML data using C# Linq to XML

에만 whitout이 같은 스키마 :

<gml:Polygon srsName='http://www.opengis.net/gml/srs/epsg.xml#4283'> 
<gml:outerBoundaryIs> 
    <gml:LinearRing> 
    <gml:coord> 
    <gml:X>152.035953</gml:X> 
    <gml:Y>-28.2103190007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.035957</gml:X> 
    <gml:Y>-28.2102020007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.034636</gml:X> 
    <gml:Y>-28.2100120007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.034617</gml:X> 
    <gml:Y>-28.2101390007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.035953</gml:X> 
    <gml:Y>-28.2103190007845</gml:Y> 
    </gml:coord> 
    </gml:LinearRing> 
</gml:outerBoundaryIs> 
</gml:Polygon> 

내가 XDocument.Load와 문서를 읽으려고 메서드를 말하는 예외 : 'gml' namespace is not defined.

많은 gml 파일을 가지고 있으므로 모든 파일에 스키마와 네임 스페이스를 추가하고 싶지 않습니다. 아무도 내 파일을 읽는 법을 알고 있습니까?

답변

1

네임 스페이스를 추가하고 프로그래밍 방식으로 입력 할 수 있습니다.

File.ReadAllText(filename)을 사용하여 파일을로드하고 필요한 유형 및 네임 스페이스 정보를 추가하고 Load 대신 XDocument.Parse을 사용하여 구문 분석하십시오.

2

"gml"접두사와 연결된 네임 스페이스를 선언하지 않으면 텍스트가 유효하지 않습니다. Xml + 네임 스페이스.

당신은 (의사 코드) 같은 것을 한 전처리 단계를 구현할 수 :

string text = ReadFromFile(); 
text = text.replace(" srsName=", " xmlns:gml="); 
xmlDocument.LoadXml(text); 
관련 문제