Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath & Google Android / 8 сообщений из 8, страница 1 из 1
23.03.2008, 11:15
    #35208047
umniaxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Народ, подскажите, мне нужно пропарсить хмл-ну на платформе Google Android. Для этой цели очень подошел бы XPath. Но те библиотеки, которые я знаю в java, Андроид импортировать не дает. Вопрос: какие есть способы подключить и заюзать XPath на сей чудесной платформе?
...
Рейтинг: 0 / 0
23.03.2008, 11:49
    #35208067
umniaxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Уточню вопрос: возможно ли использовать XPath, не импортируя jdom или XPathAPI
...
Рейтинг: 0 / 0
23.03.2008, 12:53
    #35208121
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Можно много что сделать.
Приведи пример что есть и что надо.
...
Рейтинг: 0 / 0
23.03.2008, 13:36
    #35208173
umniaxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Есть такой xml

<?xml version="1.0"?>

<map name="Бобруйский Метроролитен" number="3">
<Station id="1" name="ДубочОк" line="ДэрЭвяшечка" color="brown" x="20" y="20" next="0" privious="0" hub="0"></Station>
<number>3</number></map>

Надо допустим получить атрибут map name.

Раньше я делал приблизительно следующее:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
File f = new File("data.xml");
Document document = factory.newDocumentBuilder().parse(f);

String path = "/xml/total";
NodeList nlist = XPathAPI.selectNodeList(document, path);
int total = Integer.parseInt(nlist.item(0).getTextContent());


В данном случае на данной платформе оно мне этого сделать не позволяет. Не дает импортнуть
import com.sun.org.apache.xpath.internal.XPathAPI;

Такая же фигня с библиотекой jdom.
...
Рейтинг: 0 / 0
24.03.2008, 09:30
    #35208804
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Насколько я знаю для разработки под Андроид они предлагают свой sdk, и пользоваться надо именно им. Кое-какие инструменты для работы с хмл-ем они сделали, но насколько я вижу по докам это только sax . Хотя наверно и в этом есть смысл - таки платформа мобильная, т.е. с сильно ограниченными ресурсами, так что библиотеки для охочего до памяти DOM-а даже включать не стали, чтобы соблазна не было :)
...
Рейтинг: 0 / 0
24.03.2008, 20:16
    #35210684
umniaxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Попытался написать простой Dom parser. В Андроиде он есть... импорты сделать позволяет
Есть следующий код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;

import java.io.File;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;


public class xml extends Activity {

	
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        
        
        String result = null;
        TextView tv = new TextView(this); 
        Document document = null;
        
        try {		
        	result = result + "--1--";
        	
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			File f = new File("c:\\data.xml");
			result = result + "--2--"; 
			document = factory.newDocumentBuilder().parse(f);
			
			result = result + "--3--"; 
			
			//result = document.getLastChild().getNodeName();//getElementsByTagName("map").toString();//.getNodeName();//getAttributeNode("name").getValue();
			result = result + "--4--";
			
        } catch (Exception e) {
			// tv.setText("Error: " + e.getMessage());
			 result = result + "ERROOOORRRRRRRRRRRRRRRRRRR";
        }
		
		
		
		tv.setText(result+"    121212");
		this.setContentView(tv); 
                
    }
}

Строка document = factory.newDocumentBuilder().parse(f); кидает Exseption. На джаве подобным образом я делал, все работало отлично, в доках Андроида написано, что все, что я делаю законно и имеет право быть. Если не сложно, можете указать где я дурак :) ?
...
Рейтинг: 0 / 0
24.03.2008, 20:18
    #35210688
umniaxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
Попытался написать простой Dom parser. В Андроиде он есть... импорты сделать позволяет
Есть следующий код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;

import java.io.File;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;


public class xml extends Activity {

	
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        
        
        String result = null;
        TextView tv = new TextView(this); 
        Document document = null;
        
        try {		
        	result = result + "--1--";
        	
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			File f = new File("c:\\data.xml");
			result = result + "--2--"; 
			document = factory.newDocumentBuilder().parse(f);
			
			result = result + "--3--"; 
			
			//result = document.getLastChild().getNodeName();//getElementsByTagName("map").toString();//.getNodeName();//getAttributeNode("name").getValue();
			result = result + "--4--";
			
        } catch (Exception e) {
			// tv.setText("Error: " + e.getMessage());
			 result = result + "ERROOOORRRRRRRRRRRRRRRRRRR";
        }
		
		
		
		tv.setText(result+"    121212");
		this.setContentView(tv); 
                
    }
}

Строка document = factory.newDocumentBuilder().parse(f); кидает Exseption. На джаве подобным образом я делал, все работало отлично, в доках Андроида написано, что все, что я делаю законно и имеет право быть. Если не сложно, можете указать где я дурак :) ?
...
Рейтинг: 0 / 0
25.03.2008, 12:21
    #35211679
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath & Google Android
рекомендую в форум Java запостить - мож там кто игрался с андроидом
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath & Google Android / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]