在android中解析xlink类型的XML

在android中解析xlink类型的XML,android,xml,xml-parsing,Android,Xml,Xml Parsing,我已经多次解析过XML,但没有通过这种类型的XML进行解析 我已经多次解析了以下类型的XML: <a> <a1>abc</a1> <a2>abc</a2> <a3>abc</a3> <a4>abc</a4> </a> abc abc abc abc 但我不知道如何解析以下类型的xml: <?xml version="1.0" enco

我已经多次解析过XML,但没有通过这种类型的XML进行解析

我已经多次解析了以下类型的XML:

<a>
    <a1>abc</a1>
    <a2>abc</a2>
    <a3>abc</a3>
    <a4>abc</a4>
</a>

abc
abc
abc
abc
但我不知道如何解析以下类型的xml:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <orders>
        <order id="1" xlink:href="http://192.168.1.9/prestashop/api/orders/1"/>
        <order id="2" xlink:href="http://192.168.1.9/prestashop/api/orders/2"/>
    </orders>
</prestashop>


问题:我如何在order元素中获得URL?

您使用的是
SaxParser
您必须对DefaultHandler进行子类化,并且在

    @Override
    public void startElement(String uri, String localName, String qName,
                    Attributes attributes) throws SAXException {
            if (qName.equalsIgnoreCase("order")) {
                   String href = attributes.getValue("xlink:href");
            } 

    }

我已经搜索过了,并且已经找到了使用
XMLPullParser
解析上面提到的
XMl
的方法

我在这里发布了解决方案,希望它能帮助像我这样的人

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();

xpp.setInput(new StringReader (RESPONSE_STRNG_HERE));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) 
{
    if(eventType == XmlPullParser.START_DOCUMENT) 
    {
        System.out.println("Start document");
    } 
    else if(eventType == XmlPullParser.END_DOCUMENT) 
    {
        System.out.println("End document");
    } 
    else if(eventType == XmlPullParser.START_TAG) 
    {
        System.out.println("Start tag "+xpp.getName());
        Log.e("Count ",""+xpp.getAttributeCount());
        for(int ia=0;ia<xpp.getAttributeCount();ia++)
        {
            Log.e("Attribute Name ",xpp.getAttributeName(ia));
            Log.e("Attribute Value ",xpp.getAttributeValue(ia));
        }
    } 
    else if(eventType == XmlPullParser.END_TAG) 
    {
        System.out.println("End tag "+xpp.getName());
    } 
    else if(eventType == XmlPullParser.TEXT) 
    {
        Log.e("Text ",xpp.getText());
    }
    eventType = xpp.next();
}
XmlPullParserFactory工厂=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp=factory.newPullParser();
xpp.setInput(新的StringReader(此处为响应);
int eventType=xpp.getEventType();
while(eventType!=XmlPullParser.END_文档)
{
if(eventType==XmlPullParser.START\u文档)
{
System.out.println(“开始文档”);
} 
else if(eventType==XmlPullParser.END_文档)
{
系统输出打印项次(“结束文件”);
} 
else if(eventType==XmlPullParser.START_标记)
{
System.out.println(“开始标记”+xpp.getName());
Log.e(“Count”和“+xpp.getAttributeCount());

对于(intia=0;ia@LithuT.V我没听懂。你有没有问我是否有order.id?你有没有尝试过这样的方法:?然后使用“公共抽象对象getProperty(字符串名称)”若要获取您的属性值?可能是@hakre的重复项,谢谢..我希望该链接能对我有所帮助。为您选择的XML解析器搜索XML命名空间。应该支持XML命名空间。您的答案可能是正确的,但我使用的是DOM解析器。:)仍然会支持您的帮助。