0

サンプル xml 、

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Issue>
     <Snippet>     
           sri;;
           hiil
           bye;
           tc;
    </Snippet>
    </Issue>

スニペットタグ内の文字全体を取得することは可能ですか??

これが実装である場合、

    public void startElement(String uri, String localName,
             String qName, Attributes attributes) throws SAXException {
      temp = "";
      if (qName.equalsIgnoreCase("Issue")) {
             acct = new Account();

      public void endElement(String uri, String localName, String qName)
             throws SAXException {

      if (qName.equalsIgnoreCase("Issue")) {
             // add it to the list
             accList.add(acct);
       else if(qName.equalsIgnoreCase("Snippet"))
           {
               acct.setPrimarySnippet(temp);
           }

O/p は tc です。しかし、印刷するにはスニペットタグ内の値全体が必要です。

配列リストが使用されます。値を取得および取得するために使用される getter および setter メソッド。

4

3 に答える 3

2

メソッド「文字」を使用します。

http://docs.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html#characters(char[], int, int)

startElementつまり、メソッドとメソッドを実装する必要がありendElementます (「スニペット」タグに出入りしていることを知らせるために、charactersメソッドは文字を返します。

  public void startElement(String uri, String localName,
             String qName, Attributes attributes) throws SAXException {
      temp = "";
      if (qName.equalsIgnoreCase("Issue")) {
             someFlagVariable = true;

 public void endElement(String uri, String localName, String qName)
             throws SAXException {
      if (qName.equalsIgnoreCase("Issue")) {
             someFlagVariable = false;
      }
 }
public void characters(char[] ch,
                   int start,
                   int length)
            throws SAXException{
   if (someFlagVariable ){
       String content = new String(ch, start, length).trim(); //this is your content
   }
}
于 2013-04-25T15:12:12.123 に答える
0

1) スニペット内にテキストを出力するには、実装する必要があります

public void characters(char ch[], int start, int length)

2) スニペット内のテキストには複数の行が含まれています。SAX を使用すると、各行を個別に取得できます。この動作は SAX API で文書化されています。プロバイダーによって異なる場合がありますが、少なくとも JDK のデフォルトの SAX パーサーでは変更できません。StAX を試してください。この問題を解決する XMLInputFactory.IS_COALESCING オプションがあります。

于 2013-04-25T15:40:05.700 に答える