从包含在字符串中的 XML 获取值

Posted

技术标签:

【中文标题】从包含在字符串中的 XML 获取值【英文标题】:Get values from a XML contained in a String 【发布时间】:2015-10-23 02:49:19 【问题描述】:

我有一个包含 XML 的字符串变量:

String xml = "<?xml version="1.0" encoding="utf-8" standalone="yes"?><CourtactSioux><ListeContact><IdContactClient>212</IdContactClient><DateContact>25/06/2012 08:09</DateContact><TypeForm>STANDARD</TypeForm><Foyer>2</Foyer><Civilite>M</Civilite><Nom>TEST</Nom><Prenom>JULIEN</Prenom><NomJeuneFille></NomJeuneFille></ListeContact></CourtactSioux>"

我想从这个 XML 中获取值,怎么办? 例如:获取“Civilite”值。

我试过这个:

                String xml = cn.getXml();
                Integer demandeId = cn.getID();

                XMLParser parser = new XMLParser();
                Document doc = parser.getDomElement(xml); // getting DOM element

                NodeList nl = doc.getElementsByTagName(KEY_ITEM);

// looping through all item nodes <item>
                for (int i = 0; i < nl.getLength(); i++) 
                    Element e = (Element) nl.item(i);
                    idApplication = parser.getValue(e, IdApplication);
                    idContactClient = parser.getValue(e, IdContactClient);
                    logement = parser.getValue(e, Logement);
                    typeForm = parser.getValue(e, TypeForm);
                

                id = idApplication + idContactClient;

                    Product product =  new Product()
                            .setId(id)
                            .setName(logement)
                            .setCategory(typeForm)
                            .setPrice(1)
                            .setQuantity(1);
                    ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
                            .setTransactionId(id)
                            .setTransactionAffiliation("Solutis")
                            .setTransactionRevenue(1);
                    HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
                            .addProduct(product)
                            .setProductAction(productAction);

                    Tracker t = ((App) getApplication()).getTracker();
                    t.setScreenName("transaction");
                    t.send(builder.build());
                

它的工作,注意你的xml的aprent节点

【问题讨论】:

使用xml解析:androidhive.info/2011/11/android-xml-parsing-tutorial 为此使用XML Parser。 Parse XML on Android的可能重复 XML parsing Android 的可能副本 @bpA 请看我的编辑 【参考方案1】:

在 android 中有几种解析 XML 的方法。您可以通过将字符串包装在阅读器中来使用XMLReader.parse(InputSource),如图所示here

查看 Android 开发者网站的 Parsing XML Data 部分了解更多信息。

【讨论】:

以上是关于从包含在字符串中的 XML 获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的 xml 字符串中获取特定值

如何从 android 中的 string.xml 读取值?

如何将xml传递给C#中的View?

如何从包含 XMl 的字符串中获取内部 xml

从xml字符串获取内部值[重复]

如何在Java(Android)中解析包含XML的字符串[重复]