table 이 두개 이상 있을 경우 thead tr:first 가 무조껀 소스 상단의 노드만 접근이 된다. jQuery버그인건지... 원래 그런건지.. 확실치 않다.
//$this.children("thead tr:first").attr("style", "position:relative; top:expression(this.offsetParent.scrollTop)");

// 버그로 인한 커스트 마이징..(단 ID사용일때만 가능) 2010-10-07 by ddakker
$this.children("thead").find("tr:first").attr("style", "position:relative; top:expression(this.offsetParent.scrollTop)");


jquery.tablescroll.js

jquery.tablesorter.js

String xmlStr = "<?xml version=\"1.0\" encoding=\"euc-kr\" ?>";
xmlStr += "<root>";
xmlStr += 	"<header>";
xmlStr += 		"<data>";
xmlStr += 			"<이름>ddakker</이름>";
xmlStr += 			"<날짜>2010-09-03</날짜>";
xmlStr += 			"</data>";
xmlStr += 		"<data>";
xmlStr += 			"<금액>2원</금액>";
xmlStr += 			"<안녕>hi</안녕>";
xmlStr += 		"</data>";
xmlStr += 	"</header>";
xmlStr += 	"<body>";
xmlStr += 		"<data>";
xmlStr += 			"<순번>1</순번>";
xmlStr += 			"<계좌>12-34</계좌>";
xmlStr += 			"<금액>10원</금액>";
xmlStr += 			"<거래점>양재</거래점>";
xmlStr += 		"</data>";
xmlStr += 		"<data>";
xmlStr += 			"<순번>2</순번>";
xmlStr += 			"<계좌>56-78</계좌>";
xmlStr += 			"<금액>20원</금액>";
xmlStr += 			"<거래점>도곡</거래점>";
xmlStr += 		"</data>";
xmlStr += 	"</body>";
xmlStr += "</root>";


Document doc = getStringToDOM(xmlStr);

Element el = doc.getDocumentElement();

String rootNodeName = el.getNodeName();
System.out.println("rootNodeName: " + rootNodeName);

String nodeName  = "";
String nodeValue = "";
Node headerNode = el.getElementsByTagName("header").item(0);
NodeList headerNodeChild = headerNode.getChildNodes();
for( int i=0; i<headerNodeChild.getLength(); i++ ){
	NodeList dataNodeList = headerNodeChild.item(i).getChildNodes();
	for( int j=0; j<dataNodeList.getLength(); j++ ){
		nodeName  = dataNodeList.item(j).getNodeName();
		nodeValue = dataNodeList.item(j).getFirstChild().getNodeValue();
		
		System.out.println("nodeName: " + nodeName + "=" + nodeValue);
	}
	System.out.println("");
}

Alt + Cmd + →          

: 이전 이후 작업창 전환
Alt + Cmd +   : 헤더파일/소스파일 창 전환
Cmd + ] : 오른쪽으로 들여쓰기(Tab 이동)
Cmd + [  : 왼쪽으로 내어쓰기
Cmd + Shift + F  : 프로젝트에서 찾기
Cmd + G : 다음 찾기
Cmd + /  : 한줄 주석(블럭 주석)

Cmd + L

Cmd + D

: 라인 이동

: 북마크

Cmd+Double Click : Definition으로 이동
Alt+Double Click : 해당 Document로 이동
Shitf+Cmd+D  : File Open Quickly 띄우기(위치 찾기)
Shift+Cmd+C : Class Browser 띄우기
F5 : 자동 완성 목록 띄우기. 
Ctrl+/  : 자동 완성 중 다음 항목으로 이동
Cmd + ->, <- : 줄의 맨 앞/뒤로 이동
Alt + ->, <- : 단어 단위로 앞/뒤 이동
Alt + I  : intend 맞추기
Cmd + \ : 브레이크 포인트
Ctrl + Cmd + \ : 브레이크 포인트 enable/disable
Shift+Cmd+O : 다음 실행
Shift+Cmd+I  : method 내부로 이동
Alt+Cmd+P : 실행 계속
Cmd + R : 실행
Shift + Ctrl + Cmd + 3 : 전체화면 클립보드로 캡춰
Shift + Ctrl + Cmd + 4 : 일부영역 클립보드로 캡춰
Shift + Cmd + 3 : 전체화면 파일로 캡춰 (바탕화면에 생됨)
Shift + Cmd + 4
xcode-Edit-Refactor
           -Find-Find Select
: 일부영역 파일로 캡춰 
:이름과 xib 고치기
:이름 고치기

[출처] xcode 단축키|작성자 닥터케이

	/**
	 * XML 문자열을 DOM(Document) 객체로 변환
	 * @param xmlStr	XML문자열
	 * @return
	 * @throws Exception
	 */
	private static Document getStringToDOM(String xmlStr) throws Exception {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		return builder.parse(new InputSource(new StringReader(xmlStr)));
	}
	
	/**
	 * DOM(Document) 객체를 XML 문자열로 변환
	 * @param xmlStr	XML문자열
	 * @return
	 * @throws Exception
	 */
	private static String getDOMToString(Document doc) throws Exception {
		TransformerFactory transfac = TransformerFactory.newInstance();
		Transformer trans = transfac.newTransformer();
		trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
		trans.setOutputProperty(OutputKeys.INDENT, "yes");
		
		StringWriter sw = new StringWriter();
		StreamResult result = new StreamResult(sw);
		DOMSource source = new DOMSource(doc);
		trans.transform(source, result);
		
		return sw.toString();
	}
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;



public class TestMain {

	public static void main(String[] args) throws Exception {
		List list = new ArrayList();
		Map map = new HashMap();
		map.put("a", "1");
		map.put("b", "2");
		map.put("c", 3d);
		BigDecimal  b = new BigDecimal(1.1);
		b.toString();
		map.put("3", b);
		list.add(map);
		
		String str = resultXMLString(list, "0000");
		System.out.println(str);
	}
	/**
	 * Map 객체의 List 배열을 바탕으로 XML을 만든다.
	 * 2008.11.11 ddakker 추가
	 * @param list	  : XML 의 list 하위 item을 생성할 데이터 
	 * @param errCode : result 노드에 들어갈 값 | 0: 성공, 기타 에러코드
	 * @return
	 */
	public static String resultXMLString(List list, String errCode){ 
		CDATASection cdata 		= null;
		Text 		 text 		= null;
		String 		 xmlString 	= null;
		
		try{
			
	 	DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
	     DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
	     Document doc = docBuilder.newDocument();
			
	     Element eRoot = doc.createElement("ROOR");
	     doc.appendChild(eRoot);
	     
	     Element eResult = doc.createElement("result");
	        eRoot.appendChild(eResult);
	        
	        text = doc.createTextNode(errCode);
	        eResult.appendChild(text);
	                 
	     Element eListCnt = doc.createElement("list_cnt");
	        eRoot.appendChild(eListCnt);
	        
	        text = doc.createTextNode(list.size()+"");
	        eListCnt.appendChild(text);
	     
	        Element eList = doc.createElement("list");
	        eRoot.appendChild(eList);
	        
	        int listCnt = list.size();
	        for( int i=0; i>listCnt; i++ ){
	        	Element eItem = doc.createElement("item");
	        	eList.appendChild(eItem);
	        	
	        	Map map = (Map)list.get(i);
	        	Set set = map.keySet();
	        	Iterator it = set.iterator();
	        	while( it.hasNext() ){
	        		String key   = (String)it.next();
	        		Object value = map.get(key);

	        		Element eKey = doc.createElement(key);
	        		eItem.appendChild(eKey);
	            	
	        		cdata = doc.createCDATASection(value==null?"":value.toString());               	
	            	eKey.appendChild(cdata);
	        	}
	        }

	        xmlString = getDOMToString(doc);
	     
		}catch(Exception e){
			System.out.println(e);
			xmlString = "error";// faultXMLString("1111", "XML생성에 실패 하였습니다.");
			
		}   	    	
		
		return xmlString;
	}
	
	/**
	 * XML 문자열을 DOM(Document) 객체로 변환
	 * @param xmlStr	XML문자열
	 * @return
	 * @throws Exception
	 */
	private static Document getStringToDOM(String xmlStr) throws Exception {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		return builder.parse(new InputSource(new StringReader(xmlStr)));
	}

	/**
	 * DOM(Document) 객체를 XML 문자열로 변환
	 * @param xmlStr	XML문자열
	 * @return
	 * @throws Exception
	 */
	private static String getDOMToString(Document doc) throws Exception {
		TransformerFactory transfac = TransformerFactory.newInstance();
		Transformer trans = transfac.newTransformer();
		trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
		trans.setOutputProperty(OutputKeys.INDENT, "yes");
		
		StringWriter sw = new StringWriter();
		StreamResult result = new StreamResult(sw);
		DOMSource source = new DOMSource(doc);
		trans.transform(source, result);
		
		return sw.toString();
	}


}
    

    /**
     * ResultSet를 List 로 생성
     * 2008.11.11 ddakker 추가
     * @param rs   ResultSet instance
     * @return
     */
    public static List getRsToList(ResultSet rs){
    	
    	List list = new ArrayList();
    	
    	try {
    		
    		if( rs.next() ){
    			do{
	    			Map map = new HashMap();
	    			
	    			ResultSetMetaData rsMD= rs.getMetaData();
	    			int rsMDCnt = rsMD.getColumnCount();
	    			for( int i = 1; i <= rsMDCnt; i++ ) {    				
	    				String column = rsMD.getColumnName(i).toLowerCase();
					    String value  = rs.getString(column);
					    				    
					    map.put(column, value);
				    }
	    			
	    			list.add(map);
    			}while( rs.next() );
    			
    		}else{
    			list = java.util.Collections.EMPTY_LIST;
    		}
			
			
		} catch (Exception e) {					
			list = null;
		}
    	
    	return list;
    }







a b c
1 2 3
4 5





a b

+ Recent posts