2013-06-07 1 views
0

HTML 문서를 XML로 구문 분석하는 동안 (시작 부분에 xml 시작 추가) 태그 내부의 특성에 문제가 있습니다.잘못된 속성 정의가있는 텍스트를 통한 구문 분석

<tr> 
<td class="yfnc_tabledata1" nowrap align="right">Jun 4, 2013</td> 
<td class="yfnc_tabledata1" align="right">453.22</td> 
<td class="yfnc_tabledata1" align="right">454.43</td> 
<td class="yfnc_tabledata1" align="right">447.39</td> 
<td class="yfnc_tabledata1" align="right">449.31</td> 
<td class="yfnc_tabledata1" align="right">10,454,600</td> 
<td class="yfnc_tabledata1" align="right">449.31</td> 
</tr> 

일반적으로는 (내 XSLT 코드는 실제로 그것을 참조하지 않기 때문에) 문제가되지 것 동안, 나는 오류가 점점 오전 : 만들 수있는 방법이 있다면

ERROR: 'Attribute name "nowrap" associated with an element type "td" must be followed by the ' = ' character.' 
ERROR: 'com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Attribute name "nowrap" associated with an element type "td" must be followed by the ' = ' character.' 

그래서 내가 궁금 해서요을 그 오류를 억제/무시합니다. (즉, 우선 파라미터 nowrap를 제거 할를 통해 별도의 구문 분석을 포함하지 않는 그 일을하는 방법을 찾고.)

(참고로, XML : http://pastebin.com/TLD4bZkq, XSLT : http://pastebin.com/dPzDzeAX)

답변

2

당신이있어 데이터 처리를 시도하는 것은 XML이 아니므로 XML 파서가 오류를 생성하는 것이 옳습니다.

사용중인 XSLT 프로세서 및 호출 방식에 따라 XML 파서 대신 HTML 파서를 사용하여 HTML을 DOM 트리로 구문 분석 한 다음 XSLT 프로세서로 전달할 수 있습니다 프로세서가 파일 자체를 파싱하는 것보다

그러나 XSLT는 네임 스페이스가 잘 구성된 XML을 기대하며 파서의 출력이이 문제를 준수하지 않으면 문제가 발생한다는 것을 기억하십시오. 예를 들어 Java에서 (내가 가장 잘 알고있는) XSLT에서 DOM 문서를 사용할 수 있으려면 해당 문서가 실제로 사용되지 않아도 네임 스페이스를 인식하는 파서 이 생성해야합니다. 모든 네임 스페이스.

+0

고맙습니다. 문자열 파서를 먼저 만들어 보겠습니다. –