2013-07-17 1 views
-1

데이터베이스에서 가져 오는 XML 파일이 있습니다. 특정 문자열과 URL에 오류가 발생합니다. XML에 코드와 같이 처리되는 문자가 포함되어 있으며 구문 오류가 발생하거나 정의되지 않은 엔터티가 있기 때문입니다. 데이터가 실제로는 문자열이기 때문에 XML을 설정하기 때문에 데이터가 따옴표 안에있을 때 코드로 무시하고 텍스트처럼 취급합니다. 마커 이름과 URL에 오류가있는 예제를 만들었습니다. 표시 자 이름은 &이며 URL에는 msa, ll, spn 및 iwloc가 있습니다.문자열의 특정 문자로 인해 XML 파일 오류가 발생했습니다.

& with & 
< with &lt; 
" with &quot; 
' with &apos; 
> with &gt; 

그것은 자신의 코드를 롤이이 작업을 수행하는 라이브러리를 사용하는 것이 좋습니다 :

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<markers> 
<marker name="C&O Canal Trail" 
address="" 
city="" 
state="" 
zip="" 
image="" 
width="" 
height="" 
lat="39.693978" 
lng="-78.154822" 
category="KML" 
notes="" 
url="https://maps.google.com/maps/ms?msid=209491726150360274926.0004e18eed520de4890e6&msa=0&ll=39.213103,-77.295685&spn=0.619262,1.540833&iwloc=0004e18eee21c28a5a313" 
hike_distance="" 
hike_trail_skill_level="" 
hike_points_of_interest="" 
Camping_Amenities="" 
Camping_Best_Sites="" 
Camping_Notes="" 
/> 
</markers> 
+0

사용중인 프로그래밍 언어/플랫폼 – Tom

+0

xml 확장자를 가진 액세스 데이터베이스의 텍스트 파일로 생성 된 내용을 확실하지 않습니다. – 2pourdrummer

+0

어떻게 생성 되나요? – Tom

답변

0

당신은 텍스트를 인코딩, 그래서 대체 XML에 필요합니다.

+0

그런 식으로 데이터를 입력하는 용도는 기대할 수 없으며 msa, ll, smn 및 iwloc이있는 URL에도 도움이되지 않습니다. – 2pourdrummer

0

XML의 경우 <[CDATA[ ... ]]> 태그 안에 포함 된 데이터는 임의의 문자 데이터를 허용합니다. What does <![CDATA[]]> in XML mean?

태그의 속성에서는 작동하지 않습니다.

+0

어떻게 도움이되는지 잘 모르겠습니다. – 2pourdrummer

0

톰이 맞습니다.

정확한 코드가 변환되었습니다.

참고로
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<markers> 
<marker name="C&amp;O Canal Trail" 
address="" 
city="" 
state="" 
zip="" 
image="" 
width="" 
height="" 
lat="39.693978" 
lng="-78.154822" 
category="KML" 
notes="" 
url="https://maps.google.com/maps/ms?msid=209491726150360274926.0004e18eed520de4890e6&amp;msa=0&amp;ll=39.213103,-77.295685&amp;spn=0.619262,1.540833&amp;iwloc=0004e18eee21c28a5a313" 
hike_distance="" 
hike_trail_skill_level="" 
hike_points_of_interest="" 
Camping_Amenities="" 
Camping_Best_Sites="" 
Camping_Notes="" 
/> 
</markers> 

여기에있는 XML 예약 문자 : 추천으로 http://msdn.microsoft.com/en-us/library/ms145315(v=sql.90).aspx

, 그것은 XML 리더/라이터를 명중하기 전에 데이터베이스에서오고 당신이 데이터를 청소할 것을 내가 제안하고 데이터에서 찾은 모든 예약 문자를 대체하십시오.

또는 데이터베이스에서 데이터를 바꾸면됩니다.하지만 특정 구현에 대해 동적으로 수행하는 대신 XMLRead/Write에 대해서만이 문제를 패치 할 수 있습니다.

관련 문제