gpt4 book ai didi

java - 安卓开发 : Parsing a XML file

转载 作者:行者123 更新时间:2023-12-02 08:16:58 25 4
gpt4 key购买 nike

这是我尝试解析的 XML 文件的 fragment :

<Item xsi:type="TextureItem" Name="Texture_0044" Visible="true">
<Position>
<X>240</X>
<Y>432</Y>
</Position>
<CustomProperties>
<Property Name="type" Type="string" Description="slot_rectangle">
<string />
</Property>
</CustomProperties>
<Rotation>0</Rotation>
<Scale>
<X>1</X>
<Y>1</Y>
</Scale>
<TintColor>
<R>255</R>
<G>255</G>
<B>255</B>
<A>255</A>
<PackedValue>4294967295</PackedValue>
</TintColor>
</Item>

我正在使用 XmlResourceParser 对象来解析 XML 文件,这是迄今为止我的代码:

XmlResourceParser xrp = context.getResources().getXml(R.xml.level_1);

int eventType = xrp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
//System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
//System.out.println("Start tag "+xrp.getName());
if (xrp.getName().equals("Item")) {
//...
}
} else if(eventType == XmlPullParser.END_TAG) {
//System.out.println("End tag "+xrp.getName());
} else if(eventType == XmlPullParser.TEXT) {
//System.out.println("Text "+xrp.getText());
}
eventType = xrp.next();
}
System.out.println("End document");
xrp.close();

我想做的是拥有它,以便每次找到 Item 标签时,它都会获取 Property 标签的“Description”值、Position 标签内 X 和 Y 标签的文本值,以及旋转标签的文本值,仅此而已。

现在我正在考虑它在哪里说 if (xrp.getName().equals("Item")) 只是将外部解析代码复制并粘贴到 if 条件的内部,并且然后在级别中上下移动获取我想要的值,直到发生 Item 标记事件的 END_TAG,但这似乎非常低效且令人困惑。

我想要的有点像 xrp.Item.Position.X.getText() 之类的交易,如果你知道我的意思,是否存在类似的东西?

谢谢!

最佳答案

你走在正确的道路上。只需创建一个映射到您期望的对象模型,并在解析 XML 时填充它即可。您最好采用轻量级的数据表示形式,而不是在需要值时尝试使用 xpath。

关于java - 安卓开发 : Parsing a XML file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com