2008-10-28 2 views
0

java에 대한 엄격한 xpath는 아는 것이 있습니까? (나는 그것이 dtd와 스키마를 체크하지 않기를 바란다.) 올바른 XML에 대해 신경 쓰지 않는다면 멋질 것이다.엄격한 xpath for java

답변

1

당신은 XPath를 사용하는 유효한 XML을 스키마 할 필요가 없습니다. 비정형 XML의 경우 두 가지 옵션이 있다고 생각합니다.

  • 파일에서 유효한 DOM 트리를 생성합니다. JTidy 또는 TagSoup를 통해 파일을 빠는 것이 좋습니다. 일단 그렇게하면 XPath를 정상적으로 사용할 수 있습니다.
  • 다른 트리 모양의 모델을 생성 한 다음 Jaxen의 XPath 용 사용자 정의 된 네비게이터를 사용하십시오. (Jaxen을 사용하면 원하는 모든 모델에서 XPath를 사용할 수 있습니다.)
0

먼저 올바른 "xml"은 몇 가지 방법으로 해석 할 수 있습니다. "잘 형성되지 않은"(꺽쇠 괄호, 겹쳐진 요소 등이 없음)을 의미하는 경우 xpath 버전은 아무 것도 유용하지 않을 것입니다. 일종의 정규식을 사용하는 것이 더 나을 것입니다. XML의 형식이 올바르지 않은 경우 잘 형성되지 않는 방법에 대한 단서가 있으면 좋겠다. 그렇지 않으면 어디서나 얻을 수있는 희망이 없다.

"invalid"는 스키마 나 DTD에 대해 유효성을 검사하지 않는다는 의미이므로 "local-name()"함수와 비교되는 조건자를 사용할 수 있습니다. 당신이 스키마를 무시하고 "/ foo는/바"요소를 찾으려는 경우 예를 들어, 다음 XPath는 다음과 같을 것이다 :

/*[local-name()='foo']/*[local-name()='bar']