次の文字列を解析してXML文書を作成し、次にすべての子ノードを抽出し、すでに利用可能な別の文書オブジェクトに追加しようとしました。テキストノードと要素ノードが混在しているときのXML子ノードの反復に関する問題
<dhruba><test>this</test>that<test2>wang chu</test2> something.... </dhruba>
<dhruba>this is text node <test>this</test>that<test2>wang chu</test2> anything..</dhruba>
私は子ノードを読み込むしようとしていながら、それは第二の文字列のためにELEMENT_NODEのための第一の文字列とnullをTEXT_NODEにnull子を返して、これは間違っている、それは問題をAPIである??私は次のコードを使用してい
...それは文字列
<dhruba><string name="some_name">
that
<test>this</test>
<test2>node value</test2>
some text
</string>
</dhruba>
期待される出力::文書として
<string>
<string name="some_name">
<test>this</test>
<test2>node value</test2>
</string>
</string>
として、私は::のjava 6.
Node n = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
dom = db.newDocument();
Element rootEle = dom.createElement("resources");
// adding the root element to the document
dom.appendChild(rootEle);
Element element = dom.createElement("string");
element.setAttribute("name", "some_name");
try {
n = db.parse(new InputSource(new StringReader("<dhruba><test>this</test>that<test2>node value</test2> some text</dhruba>"))).getDocumentElement();
n = dom.importNode(n, true);
NodeList nodeList = n.getChildNodes();
int length = nodeList.getLength();
System.out.println("Total no of childs : "+length);
for(int count = 0 ; count < length ; count++){
Node node = nodeList.item(count);
if(node != null){
element.appendChild(node);
}
}
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rootEle.appendChild(element);
INPUTを使用していますコンパイル
パースしようとすると
<test>this</test>that<test2>wang chu</test2> something....
、出力は "thiswangチュー" 私は明らかだ
Why is this happening? what needs to be done if I want to add following node under another document element, i.e. <string>.
<test>this</test>
that
<test2>node value</test2>
some text
[notice that it does not have <dhruba>] inside parent node of another
document.
希望として提供されます。上記のコードはJavaでコンパイルされます。
ありがとう、Grzegorz、cloneNode(true)はうまくいきます。あなたはこれに多くの時間を費やして私を救ってくれました。 – Dhrubo
@Dhrubo:あなたは大歓迎です:)あなたは受け入れられたとして私の答えをマークするかもしれません(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –
受け入れる方法?私はこのサイトで新しいです。ご案内ください。私は上記のリンクを使用しましたが、それはmeta.stackoverflowサイトであり、何をクリックするのが混乱していました.. :( – Dhrubo