0
<Details><propname key="workorderid">799</propname>

SAXParingを使用してworkorderidから799を取得するにはどうすればよいですか?このコードを使用すると、「workorderid」は取得されますが、workorderidの値は取得されません

if(localName.equals("propname")){
String workid = attributes.getValue("key");
4

3 に答える 3

0
if(localName.equals("propname")){

// ここで 1 つのフラグを設定し、endElement() で localname(propname) に関連付けられた値を取得します。 String workid = attributes.getValue("key");

あなたのやり方で理解し、カスタマイズするためのコードを提供しています。

public class ExampleHandler extends DefaultHandler {

    private String item;
    private boolean inItem = false;

    private StringBuilder content;

    public ExampleHandler() {
        items = new Items();
        content = new StringBuilder();
    }

    public void startElement(String uri, String localName, String qName, 
            Attributes atts) throws SAXException {
        content = new StringBuilder();
        if(localName.equalsIgnoreCase("propname")) {
            inItem = true;
        } else attributes.getValue("key");

    }

    public void endElement(String uri, String localName, String qName) 
            throws SAXException {
        if(localName.equalsIgnoreCase("propname")) {
            if(inItem) {
                item = (content.toString());
              }
    }

    public void characters(char[] ch, int start, int length) 
            throws SAXException {
        content.append(ch, start, length);
    }

    public void endDocument() throws SAXException {
        // you can do something here for example send
        // the Channel object somewhere or whatever.
    }

}

どこか間違っているかもしれません。私は急いでいます。感謝するのに役立つ場合。

于 2012-05-29T08:06:03.640 に答える
0

以下は、ノードの値を保持します。

public void characters(char[] ch, int start, int length) throws SAXException {
        tempVal = new String(ch,start,length);
    }

イベント ハンドラー メソッドでは、次のように取得する必要があります。

if(qName.equals("propname")) {
   System.out.println(" node value " + tempVal); // node value
   String attr = attributes.getValue("key") ; // will return attribute value for the propname node.
}
于 2012-05-29T08:06:10.930 に答える
0

正しい値を持つpropname属性に。値 propname を取得する必要があります。Keyworkorderid

  //Provide you tagname which is propname


 NodeList nl = ele.getElementsByTagName(tagName);
        if(nl != null && nl.getLength() > 0) {
            Element el = (Element)nl.item(0);
            textVal = el.getFirstChild().getNodeValue();
        }
于 2012-05-29T07:59:43.267 に答える