2012-09-30 1 views
0

XSLT를 사용하여 XML을 다른 XML로 변환하려고합니다. XSLT와 내가 사용하는 XML이 훨씬 크기 때문에 데이터를 제공 할 수 없습니다. 변환하는 동안 "속성 이름에 사용 된 잘못된 값"을 볼 수있었습니다. 결과 XML에서 두 번 나타나는 일부 태그를 볼 수있었습니다. 예 아래 : 나는 $ 인덱스를 사용하고 어디든지 결과에xslt 변환 중에 "특성 이름에 잘못된 값이 사용되었습니다"

<xslt:variable name="index" select="@Index"> 
<xslt:element name="EquipmentID-{$index}"> 
Hello 
</xslt:element> 

, 내가

<EquipmentID-EquipmentID-1> 
Hello 
</EquipmentID-Equipment-ID-1> 

, 같은 결과를 얻고, 좀 어색한 값을 얻고있다.

누군가 나를 도와 줄 수 있습니까?

+2

스택 오버플로에 오신 것을 환영합니다. 코드를 게시 할 때 텍스트를 선택하고'{} '모양의 단추를 클릭하거나 키보드에서 Ctrl + K를 눌러 서식을 지정해야합니다. 나는이 질문에 당신을 위해 해왔습니다. –

답변

0

코드 및 소스 데이터를 더 이상 볼 수 없지만이를 지원하는 것은 불가능합니다. 귀하의 코드는 완벽하게 합리적이며 합당한 입력 (특히, @Index의 가치)에 대한 결과를 완벽하게 나타낼 수 있습니다.

0

저는 이것이 정말로 오래된 질문이라는 것을 알고 있습니다. .

Xalan을 사용하여 다른 스레드에서 동시에 XSL 변환을 수행했기 때문에이 동일한 오류가 알 수 없었습니다 (즉, 속성 이름에 문제가 없었으며 임의의 위치에서 오류가 발생 했음). 버전 2.7.0은 분명히있을 때 그것이 완전히 스레드 안전하지 않은 버그가 있습니다.

나는 Templates이지만 스레드 당 Source, Results 및 Transformers를 사용하고있었습니다. 이것은 스레드로부터 안전해야합니다.

정확히 어떤 버그인지는 모르지만 어쨌든 Xalan 2.7.2로 업그레이드하면 문제가 해결됩니다.