'Programming/xml'에 해당되는 글 18건

  1. 2019.12.01 XML DOM과 SAX
  2. 2019.09.29 xpath exist boolean()
  3. 2019.09.14 xpath 복수개의 attribute 동시에 만족하는 항목 찾기
  4. 2019.09.11 xsd minOccurs, maxOccurs
  5. 2019.09.09 xpath count()
  6. 2019.08.12 xpath xsi
  7. 2019.08.08 xpath concat
  8. 2019.08.08 xpath syntax - attribute 검색 및 특정값 얻기
  9. 2019.08.01 xpath..
  10. 2019.07.25 xmllint string()
Programming/xml2019. 12. 1. 13:50

DOM은 메모리에 다 올리고 한번에 로드해서 여러번 읽는데 유리하다면

SAX는 스트림 파서에 가까워서 쭈욱 읽어 가면서(메모리 적게 사용) 이벤트 방식으로 중간중간 값을 빼내기 불리함

 

dom방식

1. 처음 xml 문서 전체를 메모리에 로드하여 값을 읽습니다.

2. xml 문서 전체가 메모리에 올라가 있으므로  노드 들을 빠르게 검색 하고 데이터의 수정과 구조 변경이 용이 합니다.

3. 호불호가 갈리지만 dom방식으로 xml문서를 핸들링 하는것이 sax방식보다 직관적입니다.

 

sax방식

1. xml 문서를 순차적으로 읽어 내려가며 노드가 열리고 닫히는 부분에서 이벤트가 발생 합니다.

2. xml 문서 전체를 메모리에 올리지 않기 때문에 메모리 사용량이 적고 단순히 읽기만 할때 빠른 속도를 보입니다.

3. 발생한 이벤트를 핸들링 하여 변수에 저장하고 활용하는 방식이기 때문에 문서의 중간 중간 검색하고 노드를 수정하기가 어렵습니다.

4. dom방식에 비해 구현이 방식이 복잡하고 직관적이지 않습니다.

[링크 : http://stg.etribe.co.kr/2014/08/09/xml-파싱시-dom과-sax의-차이/] 원본으로 추정

[링크 : https://humble.tistory.com/23]

[링크 : https://cache798.blog.me/130009188949]

'Programming > xml' 카테고리의 다른 글

xpath exist boolean()  (0) 2019.09.29
xpath 복수개의 attribute 동시에 만족하는 항목 찾기  (0) 2019.09.14
xsd minOccurs, maxOccurs  (0) 2019.09.11
xpath count()  (0) 2019.09.09
xpath xsi  (0) 2019.08.12
Posted by 구차니
Programming/xml2019. 9. 29. 23:03

boolean() 으로 특정 element를 조회하면 될 듯?

 

[링크 : https://stackoverflow.com/questions/5689966/how-to-check-if-an-element-exists-in-the-xml-using-xpath]

 

+

2019.12.17

옛날 글이라 그런가 링크가 깨졌네

The boolean function converts its argument to a boolean as follows:

  • a number is true if and only if it is neither positive or negative zero nor NaN

  • a node-set is true if and only if it is non-empty

  • a string is true if and only if its length is non-zero

  • an object of a type other than the four basic types is converted to a boolean in a way that is dependent on that type

[링크 : https://stackoverflow.com/questions/5689966/how-to-check-if-an-element-exists-in-the-xml-using-xpath]

[링크 : http://www.w3.org/TR/xpath/#function-boolean] << 옛날 링크

 

Rules

The function computes the effective boolean value of a sequence, defined according to the following rules. See also Section 2.4.3 Effective Boolean Value XP31.

  • If $arg is the empty sequence, fn:boolean returns false.

  • If $arg is a sequence whose first item is a node, fn:boolean returns true.

  • If $arg is a singleton value of type xs:boolean or a derived from xs:boolean, fn:boolean returns $arg.

  • If $arg is a singleton value of type xs:string or a type derived from xs:string, xs:anyURI or a type derived from xs:anyURI, or xs:untypedAtomic, fn:boolean returns false if the operand value has zero length; otherwise it returns true.

  • If $arg is a singleton value of any numeric type or a type derived from a numeric type, fn:boolean returns false if the operand value is NaN or is numerically equal to zero; otherwise it returns true.

[링크 : https://www.w3.org/TR/xpath-functions-31/#func-boolean] << 새로운 링크?

 

'Programming > xml' 카테고리의 다른 글

XML DOM과 SAX  (0) 2019.12.01
xpath 복수개의 attribute 동시에 만족하는 항목 찾기  (0) 2019.09.14
xsd minOccurs, maxOccurs  (0) 2019.09.11
xpath count()  (0) 2019.09.09
xpath xsi  (0) 2019.08.12
Posted by 구차니
Programming/xml2019. 9. 14. 18:12

당연(?)하지만 and로 여러개 나열해주면 되는 듯?

 

//category[@name='Sport' and ./author/text()='James Small']

[링크 : https://stackoverflow.com/questions/10247978/xpath-with-multiple-conditions]

'Programming > xml' 카테고리의 다른 글

XML DOM과 SAX  (0) 2019.12.01
xpath exist boolean()  (0) 2019.09.29
xsd minOccurs, maxOccurs  (0) 2019.09.11
xpath count()  (0) 2019.09.09
xpath xsi  (0) 2019.08.12
Posted by 구차니
Programming/xml2019. 9. 11. 13:55

값이 설정 안되어 있으면 기본 값은 minOccurs=1, maxOccurs=1 로 된다고 한다.

 

[링크 : http://tcpschool.com/xml/xml_xsd_occurrenceIndicator]

[링크 : https://stackoverflow.com/questions/4821477/xml-schema-minoccurs-maxoccurs-default-values]

'Programming > xml' 카테고리의 다른 글

xpath exist boolean()  (0) 2019.09.29
xpath 복수개의 attribute 동시에 만족하는 항목 찾기  (0) 2019.09.14
xpath count()  (0) 2019.09.09
xpath xsi  (0) 2019.08.12
xpath concat  (0) 2019.08.08
Posted by 구차니
Programming/xml2019. 9. 9. 19:19

항목이 몇개 있나 세어주는 함수

상위 경로가 중복으로 있을 경우 하위 항목을 세면

본인이 의도하지 않은 범위까지 세어버리니 주의가 필요하다

A - B

   - B

A - B

   - B

이런식으로 B를 세면 A가 두개이고 각각 B가 두개이니 2로 나올것 같지만 4개가 나온다.

count(/A[0]/B) 식으로 세어야 의도한 녀석의 갯수가 나온다.

 

[링크 : https://stackoverflow.com/questions/13799263/use-of-count-in-xpath-expressions?rq=1]

[링크 : https://examples.javacodegeeks.com/core-java/xml/xpath/xpath-count-example/]

'Programming > xml' 카테고리의 다른 글

xpath 복수개의 attribute 동시에 만족하는 항목 찾기  (0) 2019.09.14
xsd minOccurs, maxOccurs  (0) 2019.09.11
xpath xsi  (0) 2019.08.12
xpath concat  (0) 2019.08.08
xpath syntax - attribute 검색 및 특정값 얻기  (0) 2019.08.08
Posted by 구차니
Programming/xml2019. 8. 12. 15:42

xml namespace나 schema 관련된 녀석을 조회하려는데

어떻게 해야 할지 감이 안와서(evaluation fail막 뜨고..) 찾다가 발견

name이 아니라 name()이 포인트

//*[name()='xsi:noNamespaceSchemaLocation']

 

[링크 : https://stackoverflow.com/questions/4817112/xpath-query-for-xml-node-with-colon-in-node-name]

 

xsi는 Xml Schema Instance의 약자인 것으로 보인다.

인스턴스 문서가 참조할 때는 두 가지 특별한 애트리뷰트를 사용하는데, xsi:schemaLocation xsi:noNamespaceSchemaLocation이 그것이다. 관습적으로 "xsi"는 "http://www.w3.org/2001/XMLSchema-instance"를 가리키는 접두어로 쓰인다.)

[링크 : https://ko.wikipedia.org/wiki/XML_스키마_(W3C)]

'Programming > xml' 카테고리의 다른 글

xsd minOccurs, maxOccurs  (0) 2019.09.11
xpath count()  (0) 2019.09.09
xpath concat  (0) 2019.08.08
xpath syntax - attribute 검색 및 특정값 얻기  (0) 2019.08.08
xpath..  (0) 2019.08.01
Posted by 구차니
Programming/xml2019. 8. 8. 11:09

음.. 시도해보고 수정필요

해당 항목을 검색해서 그 결과를 붙여주는건 아니라 실망..

 

[링크 : https://stackoverflow.com/questions/21996965/concatenate-multiple-node-values-in-xpath]

[링크 : https://stackoverflow.com/questions/3398871/concatenate-multiple-attribute-values]

'Programming > xml' 카테고리의 다른 글

xpath count()  (0) 2019.09.09
xpath xsi  (0) 2019.08.12
xpath syntax - attribute 검색 및 특정값 얻기  (0) 2019.08.08
xpath..  (0) 2019.08.01
xmllint string()  (0) 2019.07.25
Posted by 구차니
Programming/xml2019. 8. 8. 11:02

특정 위치중에 attribute가 DB이고 값이 Gene일 경우 해당 Xref element의 ID attribute의 값을 받는 예제

(말이 어렵다 -ㅁ-)

 

/ClinVarSet/ReferenceClinVarAssertion/MeasureSet/Measure/MeasureRelationship/XRef[@DB='Gene']/@ID

[링크 : https://www.w3schools.com/xml/xpath_syntax.asp]

'Programming > xml' 카테고리의 다른 글

xpath xsi  (0) 2019.08.12
xpath concat  (0) 2019.08.08
xpath..  (0) 2019.08.01
xmllint string()  (0) 2019.07.25
libxml2 - xmlNodeDump()  (0) 2019.07.09
Posted by 구차니
Programming/xml2019. 8. 1. 15:03

node.js 에서 원하는 갯수를 확인하려면

.length를 통해 array의 갯수를 확인하면 되긴한다.

 

MeasureSet 의 갯수를 확인하고

> var result_ele = xpath.select("/ClinVarSet/ReferenceClinVarAssertion/GenotypeSet/MeasureSet", doc);
undefined
result_ele.length
2

 

MeasureSet의 인덱스로 접근해서 몇개씩을 가지는지 확인하면 될 듯

> var result_ele = xpath.select("/ClinVarSet/ReferenceClinVarAssertion/GenotypeSet/MeasureSet[1]/Measure/AttributeSet/Attribute", doc);
undefined
result_ele.length
9
> var result_ele = xpath.select("/ClinVarSet/ReferenceClinVarAssertion/GenotypeSet/MeasureSet[2]/Measure/AttributeSet/Attribute", doc);
undefined
result_ele.length
7

 

[링크 : https://stackoverflow.com/questions/2407781/get-nth-child-of-a-node-using-xpath]

'Programming > xml' 카테고리의 다른 글

xpath concat  (0) 2019.08.08
xpath syntax - attribute 검색 및 특정값 얻기  (0) 2019.08.08
xmllint string()  (0) 2019.07.25
libxml2 - xmlNodeDump()  (0) 2019.07.09
libxml2  (0) 2019.07.04
Posted by 구차니
Programming/xml2019. 7. 25. 12:45

-xpath "@Version" 으로 하면 값과 Atrribute 이름이 같이 출력되는데

Version="" 식으로

 

"string(@Version)" 으로 하면 "" 안의 값만 출력된다.

 

[링크 : https://unix.stackexchange.com/questions/219373/]

'Programming > xml' 카테고리의 다른 글

xpath syntax - attribute 검색 및 특정값 얻기  (0) 2019.08.08
xpath..  (0) 2019.08.01
libxml2 - xmlNodeDump()  (0) 2019.07.09
libxml2  (0) 2019.07.04
xmlstarlet  (0) 2016.05.26
Posted by 구차니