XML (String オブジェクト内) が適切に形成されているかどうかを検証したいと考えています。このような:
"<root> Hello StackOverflow! <a> Something here </a> Goodbye StackOverflow </root>"
属性も検証する必要がありますが、私は今のところそれにはほど遠いです。ロジックが正しいことを確認したいだけです。これが私がこれまでに得たものですが、行き詰まっており、助けが必要です。
public boolean isWellFormed( String str )
{
boolean retorno = true;
if ( str == null )
{
throw new NullPointerException();
}
else
{
this.chopTheElements( str );
this.chopTags();
}
return retorno;
}
private void chopTags()
{
for ( String element : this.elements )
{
this.tags.add( element.substring( 1, element.length()-1 ) );
}
}
public void chopTheElements( String str )
{
for ( int i = 0; i < str.length(); i++ )
{
if ( str.charAt( i ) == '<' )
{
elements.add( getNextToken( str.substring( i ) ) );
}
}
}
private String getNextToken( String str )
{
String retStr = "";
if ( str.indexOf( ">" ) != -1 )
{
retStr = str.substring( 0, str.indexOf( ">" ) + 1 );
}
return retStr;
}
これまでのところ、"" のような要素をリストに切り刻んでから、次のように別のリストにタグを切り刻みました: root、/root.
しかし、どのように進むべきか、または正しい方向に進んでいるかどうかはわかりません。私は正規表現なしでこれを解決するために割り当てられました。
何かアドバイス?私はここで迷っています。ありがとう。