2011-05-10 4 views
2

smil 파일 (XML 형식을 따름)에서로드 중이며 대신 이름 (예 : xml.body)을 통해 속성을 선택할 수 없습니다. 대신 xml.child(0)으로 데이터에 액세스 할 수 있습니다.SMIL 파일 xml은 e4x와 호환되지 않습니까?

나는 아직 xml.child('body')을 시도했지만 아무런 결과가 없습니다. 누구든지 빠른 해결 방법을 알고 있습니까? 나는 xml.head.(@name=='rtmpPlaybackbase') 및 XMLList에 xml.body.switch.video

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> 
<head> 
    <meta name="title" content="myStream"/> 
    <meta name="httpBase" content="http://mydomain.com/"/> 
    <meta name="rtmpPlaybackBase" content="http://mydomain.com/"/> 
</head> 
<body> 
    <switch> 
     <video src="[email protected]" system-bitrate="500000"/> 
     <video src="[email protected]" system-bitrate="900000"/> 
     <video src="[email protected]" system-bitrate="1500000"/> 
    </switch> 
</body> 

많은 감사에 액세스 할 수 있도록하고 싶습니다!

+0

좋은 질문입니다. +1. –

답변

4

먼저 시작 태그를 닫습니다. 의는이 같은 지금 있다고 가정 해 봅시다 : 당신이 xml.body의 길이를 추적하면 다음

var xml:XML = new XML('<smil xmlns="http://www.w3.org/2001/SMIL20/Language"><head><meta name="title" content="myStream"/><meta name="httpBase" content="http://mydomain.com/"/><meta name="rtmpPlaybackBase" content="http://mydomain.com/"/></head><body><switch><video src="[email protected]" system-bitrate="500000"/><video src="[email protected]" system-bitrate="900000"/><video src="[email protected]" system-bitrate="1500000"/></switch></body></smil>'); 

을, 당신이 XML 네임 스페이스를 사용하기 때문에 이것은 주로 0

trace(String(xml.body).length); //traces 0 

제공 :

trace(String(xml.ns::body).length); //traces 272 
:
var ns:Namespace = new Namespace("http://www.w3.org/2001/SMIL20/Language"); 

이제 XML의 태그에 도달하는이 네임 스페이스를 사용

그래서 xml.ns::TAGNAME에 도달하는 방법입니다.

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다 –

+0

+ 답답함 + 1 (빠른 답변) - 닫기 태그를 추가하지 않아도 효과적입니다. (선언문이 필요 없습니다.) 그러나 네임 스페이스를 사용하는 것을 완전히 잊어 버렸기 때문에 답변으로 표시했습니다. 당신의 도움을 주셔서 감사합니다! – Jacksonkr

+0

주 - 이름 공간에 실제 문자열 (예 : "http://www.w3.org/2001/SMIL20/Language")을 사용해야합니다. 나는 xml.namespaceDeclarations() [0]을 시도했고 그것은 ns가 정의되지 않았다고 말했다. 그래서 그는 대답을 주었고 당신은 잘되어야합니다! – Jacksonkr