3

こんにちは、SimpleXMLbtwを使用して値を含むxmlタグを読み取る方法を誰かに教えてもらえますか。私はAndroidアプリを構築しています。

ルート要素内にあるすべてのタグと値を取得する必要があります。

<RootElement>
   <UnknownTab>UnkownValue</UnkownTab>
   <AnotherUnknownTab>UnkownValue</AnotherUnknownTab>
</RootElement>

RootElement内の要素の数も不明であり、毎回異なる可能性があります。

アップデート:

私はすでに他のすべてのシリアル化にSimpleXmlを使用しているので、別のXML解析ツールを使用したくありません。問題は、SimpleXmlを使用してこれを行う方法であり、xmlをシリアル化する方法ではありません。

更新2: XMLを確認しました(少し複雑です)。定義は次のとおりです。

xsd-定義:

<element-sequence> 
   <element name="actualName" ..../>
   <element name="actualName" ..../>
   <element name="actualName" ..../>
   .
   .
   .
</element-sequence>

element-sequenceのサイズは可変であり、RootElement内の要素のタグはactualNamesです。

<RootElement>
   <actualName>UnkownValue</actualName>
   <actualName>UnkownValue</actualName>
   .
   .
   .
</RootElement>

SimpleXMLで可能であれば、これをシリアル化する方法はありますか?

4

4 に答える 4

0

Androidのを使用しSAXParserて文字列を解析できます。パーサーに必要なInputSourceXMLReaderは入力ストリームを想定しているため、文字列を入力ストリームに変換する必要があります。ByteArrayInputStreamこれには次のものを使用できます。

InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );

参照:

文字列をStrimに変換する

SAXパーサーを使用したAndroid解析XML

于 2012-11-13T08:53:08.987 に答える
0

あなたは訪問者戦略を使用したいかもしれません

オーバーライド「読み取り」メソッド:

@Override
public void read(Type type, NodeMap<InputNode> node) throws Exception {

NodeMapへのアクセスを提供します。node.getNode()を使用すると、実際の現在のInputNodeを取得し、たとえばその名前と値を照会できます。マップされていないタグに対して例外がスローされないように、RootElementアノテーションで「strict=false」を使用していることを確認することをお勧めします。

于 2012-12-17T09:41:32.437 に答える
0

非常に簡単なチュートリアルを見てください。JavaとXML 、およびXMLデータの解析が役立ちます。

于 2012-11-13T08:30:08.447 に答える
0

SimpleXMLを使用してこれを行うことは不可能のようです。XPathを使用して作業を行ってください。

于 2012-11-16T13:39:43.797 に答える