2014-02-12 5 views
0
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?xml-stylesheet href="Sample.xsl" type="text/xsl"?> 
<MyDoc>.....</MyDoc> 

속성 href의 값을 'MyDoc.xsl'로 수정하고 싶습니다. 나는 XPath를 사용하여 시도했지만 그것은 아무것도 반환하지 : 또한 전용 문서를 사용하여 mydoc에서 시작 요소를 제공자바에서 xml-stylesheet 속성 값을 어떻게 수정할 수 있습니까?

//xml-stylesheet[contains(text(), 'Sample.xsl')]/@href"; 

NodeList list = taggedC32Doc.getElementsByTagName("*"); 

내가이 작업을 수행 할 수있는 방법이 있나요를?

답변

1

변경하려는 줄은 요소가 아닌 처리 명령이므로 요소로 찾으려는 시도도 효과가 없습니다. 시도해보십시오

/processing-instruction(xml-stylesheet) 

그런 다음 해당 노드의 데이터를 가져올 수 있습니다 (href="Sample.xsl" type="text/xsl"). 해당 문자열에서 href 의사 속성을 찾아 변경하려면 적절한 문자열 조작을 수행하십시오. 죄송합니다. 대부분의 XML API는 XML을 염두에두고 있지만 PI의 데이터는 형식화되지 않은 문자열이므로 일반적으로 속성과 유사하게 구조화되어 새로운 데이터를 ProcessingInstruction 노드로 다시 설정합니다.

+0

XPath 1.0에서도 processing-instruction() 노드 테스트를 사용할 수 있습니다. –

+0

... 예. 나는 확실하지 않았기 때문에 REC를 체크했다 (나는 잠시 XSLT를 떠났다), 어떻게 든 그것을 놓쳤다. 나를 정직하게 해주셔서 고마워. – keshlam

+0

(재검사 중 ... 거기에 있지만, 원하는대로 문서화되지 않았습니다. 수정 제안을 받기 위해 정오표가 있었는지 아직 확인하지 않았습니다.) – keshlam

관련 문제