2010-04-30 3 views
3

안녕 얘들 아! 이것은 나를 견딜 수 없게 만든다. 여기 내 XML 문서iPhone을위한 쉬운 XPath 질문

<?xml version="1.0" encoding="UTF-8"?> 
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> 
    <rootfiles> 
     <rootfile full-path="content.opf" media-type="application/oebps-package+xml"/> 
    </rootfiles> 
</container> 

내가하고 싶은 모든 루트 파일 요소를 얻을 수있다이다. iPhone에서 TouchXML을 사용하고 있는데 xPath 쿼리는 다음과 같습니다.

/container/rootfiles/rootfile 

작동하지 않습니다! 나는 모든 것을 시도했다. 어떤 도움을 주시면 감사하겠습니다 ... 샘

container 노드 내에서 xmlns 비트는 당신이 당신의 쿼리 레지스터를 가질 수있는 네임 스페이스 접두사가
+0

좋은 질문 (+1). 포인터에 대한 내 대답과 순수한 XPath 솔루션을 참조하십시오. :) –

답변

2

있다.

TouchXML은 솔루션이 무엇인지 잘 알지 못하지만 TouchXML의 내부에 들어가면 관련 libxml2 전화는 xmlXPathRegisterNs()입니다.

SO answer은이 네임 스페이스를 등록하는 데 사용할 올바른 TouchXML 방법을 가리킬 수도 있습니다.

+0

야, 네가 맞다고 생각해. 분명히 터치 xml xPath 함께 알고있는 몇 가지 문제가 있습니다. 나는 그들을 고치려고 노력할거야! 누가 알면 누가 도움이 될까요? –

+0

오픈 소스에 대한 좋은 소식입니다. 행운을 빕니다! –

1

저는 TouchXML의 전문가는 아니지만 this이 도움이 될 수 있습니다.

다소 추악한 순수 XPath 솔루션도 있습니다.

사용 :

/*[name()='container']/*[name()='rootfiles']/*[name()='rootfile']