こんにちは私は以下に示すようなxmlを持っています
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<A>
<B>
<X1>
<Name>ZZZsaqw</Name>
</X1>
<X1>
<Name>ZZZsdasda</Name>
</X1>
<X1>
<Name>ZZZsdsd</Name>
</X1>
<S>17000</S>
<U>18000</U>
<V>17000</V>
<B>
<C>
<X1>
<Name>ZZZasqw</Name>
</X1>
<X1>
<Name>ZZZsdsd</Name>
</X1>
<X1>
<Name>ZZ</Name>
</X1>
<S>17000</S>
<U>18000</U>
<V>17000</V>
<C>
<D>
<X1>
<Name>ZZZx</Name>
</X1>
<X1>
<Name>ZZZzz</Name>
</X1>
<X1>
<Name>ZZZsaa</Name>
</X1>
<S>17000</S>
<U>18000</U>
<V>17000</V>
</D>
<A>
X1タグに興味があります。B、C、Dのいずれかの親タグをそれぞれ読み取る必要があります。そのため、Bに属するX1タグだけに興味がある場合もあります。これを行うにはどうすればよいですか。以下に示すDOMパーサーを使用しましたが、それらをカウントすると、カウントは9と表示されますが、本来は3でした。方法を教えてください。
NodeList plist = doc.getElementsByTagName("A");
System.out.println("The length of A is pList is:"+plist.getLength());
//get the contents of the A
for (int temp = 0; temp < plist.getLength(); temp++)
{
Node nNode = plist.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
//Element eElement = (Element) nNode;
NodeList typicalCriticalPath = doc.getElementsByTagName("B");
System.out.println("The length of B is:"+typicalCriticalPath.getLength());
//get the contents of the typical critical path
for(int temp1 = 0; temp1<typicalCriticalPath.getLength();temp1++)
{
Node typCriticalPathNode = typicalCriticalPath.item(temp);
if (typCriticalPathNode.getNodeType() == Node.ELEMENT_NODE)
{
Element ele = (Element) typCriticalPathNode;
NodeList planItemSection = doc.getElementsByTagName("X1");
System.out.println("The length of X1 is:"+planItemSection.getLength());
}
}
}
}
//The output for this is like this-
//The length of A is pList is:1
//The length of B is:1
//The length of X1 is:9
誰かが私が間違っているところを教えてもらえますか?親タグのみでタグを取得できるようにするために何をすべきか。
ありがとう!