検索と試行で長い1日後にOK、私はJavaのDOMを使用して目標に達しました。 XMLを処理するために、これらのインスタンスを最初のXMLファイルを変更するには:"*"
で車String
を交換することにより
NodeList nodeslist = doc.getElementsByTagName("car");
または全ての要素:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(context.openFileInput("MyFileName.xml")); // In My Case it's in the internal Storage
することは、その後で、すべての「車」の要素のNodeList
を作ります。
今それがうまく細かいことまでは例えばKIAの"price"
値属性のすべてのノードで検索:このようなTransformer
を使用して、同じ場所に新しいファイルを保存し、最後に
for(int i = 0 ; i < nodeslist.getLength() ; i ++){
Node node = nodeslist.item(i);
NamedNodeMap att = node.getAttributes();
int h = 0;
boolean isKIA= false;
while(h < att.getLength()) {
Node car= att.item(h);
if(car.getNodeValue().equals("kia"))
isKIA= true;
if(h == 3 && setSpeed) // When h=3 because the price is the third attribute
playerName.setNodeValue("100");
h += 1; // To get The Next Attribute.
}
}
OKを:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource dSource = new DOMSource(doc);
StreamResult result = new StreamResult(context.openFileOutput("MyFileName.xml", Context.MODE_PRIVATE)); // To save it in the Internal Storage
transformer.transform(dSource, result);
これはそれです:)。これが役立つことを願っています。
xmlファイルを更新するための_simple_方法はありません。 1つはxmlをノードに分解しなければならず、それはかなり麻痺するようになります。あなたが提供したリンクは良い出発点ですが、あなたのコードを修正して改善するのに役立ちます。 –
@GregoryNikitas yrのコメントありがとうございます、残念ながら私の試行はすべて失敗してしまいますので、今はxmlを書くためのコードがなく、解析にはXmlPullParserを公式アンドロイドデベロッパーの方法で使っています。 –