2016-07-06 1 views
1

기본 xml 파일은 아래에 삽입 된 여러 개의 XML 파일로 구성됩니다. 모든 파일의 구조는 같습니다. 그러나 삽입 된 파일에는 원래 선언, 시작 및 종료 태그가 있습니다. 이 상황은 나중 단계에서 오류를 만듭니다. XSLT는 파일 중간에 불필요한 선언, 열기 및 닫기 태그를 어떻게 제거 할 수 있습니까?XML 파일을 병합 한 후 여러 개의 XML 선언 및 닫기 태그를 제거하는 방법은 무엇입니까?

주요 파일은 다음과 같습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<BIBDB><GROUP><A> 
<-- xml data 1 -->  
</A></GROUP></BIBDB>  

<?xml version="1.0" encoding="utf-8"?> 
<BIBDB><GROUP><A> 
<-- xml data 2 --> 
</A></GROUP></BIBDB> 

<?xml version="1.0" encoding="utf-8"?> 
<BIBDB><GROUP><A> 
<-- xml data 3 --> 
</A></GROUP></BIBDB> 

예상 출력 :

그 방법으로 당신의 주요 파일을 만든 후에
<?xml version="1.0" encoding="utf-8"?> 
<BIBDB><GROUP><A> 
<-- xml data 1 -->  
</A> 

<A> 
<-- xml data 2 --> 
</A> 

<A> 
<-- xml data 3 --> 
</A></GROUP></BIBDB> 
+0

XSLT와의 병합을 고려하여 올바른 형식의 문서가되도록하십시오. –

+0

@Martin 파일은 배치 파일을 사용하여 다른 위치로 병합됩니다. 나는 그것을 바꿀 수 없다. 원하는 xslt는 한 번에 작업을 수행해야합니다. – Karel

+0

XSLT는 XML을 입력으로 사용하며 결과 zour 배치 파일은 XML이 아니므로 XSLT를 사용하여 여러 XML 문서의 연결을 수정할 수 있어야합니다. –

답변

2

, 당신은 어떤 도구를 사용하는 능력을 잃었다 주 파일이 단순히 XML이 아니기 때문에 호환 XML 파서를 기반으로합니다.

잘 구성된 XML은 여러 개의 루트 요소를 가질 수 없습니다. 또한 여러 XML 선언 (또는 파일 맨 위에있는 다른 곳에서는 XML 선언)을 가질 수 없습니다.

그래서, 당신의 옵션은 다음과 같습니다

  1. 백업, 마틴 Honnen이 코멘트에 언급, 및 XSLT 등의 준수 XML 도구를 통해 원래 (아마도 잘 구성된) XML 문서를 재 작성한다.
  2. 파일을 XML이 아닌 텍스트로 처리하고 문제가 있으면 올바른 형식의 XML이되지 않도록 복구하십시오. 이것은 일반적으로 특히 이 될 수는 없지만 특정 경우에 적용될 수있는 충분히 좁은 제약 조건의 경우 은 이러한 방식으로 취약한 성공을 달성 할 수 있습니다.

# 2보다 # 1 좋습니다.

+0

설명과 제안을 해주셔서 대단히 감사드립니다. 내가 말했던 옵션들을 시도해 보겠다. – Karel

관련 문제