2013-03-07 4 views
2

QML을 사용하는 Ubuntu touch 용 응용 프로그램을 작성하려고합니다. 내가 지금하고있는 일은 XML 파일을 검색하고 텍스트를 변경하는 것입니다.XML 파일에서 텍스트를 검색하고 qml을 사용하여 텍스트를 변경하는 방법은 무엇입니까?

이 내 XML 파일입니다

<phonelist> 
    <phone> 
    <name>drewphone</name> 
    <lost>no</lost> 
    </phone> 
    <phone> 
    <name>sarahpone</name> 
    <lost>yes</lost> 
    </phone> 
</phonelist> 

내가 sarahphone 또는 drewphone를 검색 한 후 손실 중 하나를 예 또는 아니오 변경하고 싶습니다. 이 작업을 수행하는 쉬운 방법이 있습니까?

+0

왜 QML을 사용하여이 작업을 수행합니까? QML은 범용 언어가 아닙니다. –

+0

우분투 터치를 개발하고 개발자 사이트에서 QML – Sarah

답변

1

XSLT를 사용하여 XML을 QML로 변환 할 수 있습니다.

참조 : http://www.w3schools.com/xsl/ QML은 I/O를 내가 당신이 실제로 처음에이 파일을 읽는 방법에 대한 궁금에는 파일이 없기 때문에

+0

을 권장합니다. qml로 변환하는 방법을 정말로 이해하지 못합니까? – Sarah

2

.

XMLHttpRequest에서이 XML을 가져 오는 것으로 가정하면 javacript에서이 조작을 수행하려는 것으로 들립니다. 자바 스크립트는 데이터 조작 작업을 염두에두고 설계된 것이 아니므로 액세스 할 수있는 유일한 라이브러리는 문자열 조작 라이브러리가 될 수 있습니다. 실제로 C++ (실제 XML 파서 라이브러리에 액세스 할 수있는 위치)을 작성하고 싶지 않고 xml이 매우 단순하게 유지되는 경우 정규식을 사용하여 적절한 텍스트를 찾고 바꿀 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 Ubuntu Touch를 프로그래밍하는 방법을 알아 내려고 노력하고 있으며, 지금까지 배웠던 유일한 언어는 Java, C 및 C++입니다. 따라서 XML과 QML에 관한 나의 길을 찾으려고 노력 중입니다. – Sarah

+1

@Sarah QML is is ' Java, C 또는 C++의 대용품으로, 응용 프로그램 UI를 가장 쉽고 쉽고 빠르게 정의하는 데 도움을줍니다. 위에서 말했듯이, 언급 된 다른 세 가지 언어와 같은 범용 언어는 아닙니다. –

0

QML은 의 XML 데이터에서 읽기 전용 모델을 만드는 데 사용됩니다. 뷰 요소 (예 : ListView, PathView, GridView) 및 모형 데이터 (예 : Repeater) [참조 : XmlListModel]와 상호 작용하는 다른 요소의 데이터 소스로 사용할 수 있습니다.

그것을 할 수있는 가장 좋은 방법 (예 : XML을 조작은) C++에서 헬퍼 클래스를 만드는 것입니다 작업을 수행하고 나중에 그 기능에 액세스 (또는 무엇이든) (Qt는의 ++ 쪽이 좋은 XML 라이브러리 Qt XML C++ Classes을 가지고 C) QQmlContext::setContextProperty(const QString &name, QObject *value)을 사용하여 qml로 입력하십시오. 쉽고 설명하기 쉬운 예를 보려면이 단락 "개체를 컨텍스트 속성으로 설정": Embedding C++ Objects into QML with Context Properties을 읽어보십시오.

관련 문제