문제

학습 목적으로 개인 주최자를하고 있으며 XML과 함께 일한 적이 없으므로 솔루션이 최고인지 확실하지 않습니다. 다음은 다음과 같이 제공 한 XML 파일의 기본 구조입니다.

<calendar>
    <year value="2008">
        <month value="october">
            <day value="16">
                <activity name="mike's birthday" time="21:00" address="mike's apartment" urgency="10">
                     activity description.
                </activity>
            </day>
        </month>
    </year>
</calendar>

긴급 속성은 1에서 10의 척도에 있어야합니다.
Google에서 빠른 검색을했는데 좋은 예를 찾을 수 없었습니다. 어쩌면 그것은 최선의 해결책이 아니며, 그 적절한 지 알고 싶습니다. 관련성이있는 경우 PHP에서 응용 프로그램을하고 있습니다.

도움이 되었습니까?

해결책

당신의 길은 나에게 아주 적합합니다. 그러나 나는 속성에 어린이 태그를 선호하므로 내 방식은 다음과 같습니다.

<activity>
  <name>Mike's Birthday</name>
  <time>2100</time>
  <address>Mike's Place</address>
  <urgency>10</urgency>
  <description>activity description</description>
</activity>

그러나 내가 말했듯이, 당신의 길은 괜찮습니다.

그래도 빠른 질문 - 왜 데이터베이스가 아닌가?

다른 팁

이 순진하게 도달했을 수도 있지만 XML 디자인의 주요 기능은 날짜별로 검색에 최적화된다는 것입니다. XML 문서가 크고 날짜별로 많은 검색을 수행하는 경우 (개인 주최자에서 가장 일반적인 사용 사례라고 생각합니다) 이것은 좋은 것입니다.

이 xpath 패턴 실행 :

/calendar/year[@value='2008']/month[@value='10']/day[@value='7']/activity

Kev의 더 간단한 평평한 조직에서 사용하는 패턴을 사용하는 것보다 더 적은 노드를 검사합니다.

/calendar/activity[@year='2008' and @month='10' and @day='7']

기본적으로 문서의 모든 노드를 살펴 봐야합니다.

그건 그렇고, 나는 month 그리고 day 속성은 숫자입니다. 이것은 어느 시점 에서이 데이터를 분류하기를 원하기 때문에 중요합니다. 문서에서 정렬 순서를 유지하지 않는 한 (인정할 수있는 논쟁을 할 수 있음), 당신은 당신입니다. LL은 해당 속성을 쉽게 정렬 할 수있는 형태로 원합니다.

또한 해당 속성에 숫자 데이터를 저장하는 방법에 일관성이 있어야합니다. (회의에서 똑똑하게 들리려면 데이터 유형의 표준 표현을 확립하고 있다고 말할 수 있습니다.) 예를 들어 다른 XPATH 패턴 중 어느 것도 안정적으로 작동하지 않을 것입니다. @day='7' 일치하지 않습니다 day 속성으로 설정되었습니다 "07". (당신은 속성을 xpath의 숫자로 변환하여 number() 기능이지만 처음에는 문제를 피하는 것이 좋습니다.)

해당 계층을 평평하게 할 수 있습니다.

<calendar>
    <activity
        id="123456"
        name="mike's birthday" 
        year="2008"
        month="10"
        day="16"
        time="21:00" 
        address="mike's apartment" 
        urgency="10">
            activity description.
        </activity>
</calendar>

또는..

<calendar>
    <activity id="12345">
        <name>mike's birthday</name>
        <year>2008</year>
        <month>10<month>
        <day>16</day>
        <time>21:00</time>
              <urgency>10</urgency>
        <address>mike's apartment<address>
        <description>activity description.</description>
    </activity>
</calendar>

xpath 쿼리를하는 것은 인생을 조금 덜 고통스럽게 만들 것입니다. 또한 ID 속성을 추가하여 활동을 고유하게 식별 할 수 있습니다.

나는 당신의 구조가 당신이하는 일에 좋을 것이라고 생각합니다.

이 부분을 XML에 대해 배우기 위해이 부분을 사용하려는 경우 각각의 컬렉션 작업을 수행 할 수 있도록 속성과 요소의 혼합을 사용하는 것을 고려할 수 있습니다. XML에 더 편한 후에는 어떤 속성이 속성이되고 어떤 속성이 요소가되는지 결정하는 데 사용할 규칙을 정의하기 시작할 것입니다.

올바른 코드를 사용하면 XML 파일과 데이터베이스 테이블간에 정보를 앞뒤로 이동할 수 있습니다. 학습을 시작할 수도 있습니다 XSL 원래 XML 파일을 변경하지 않고 주변의 이동을 연습 할 수 있도록하십시오 (또는 데이터가 테이블에 있으면 원본 XML 파일도 없음).

볼 가치가있을 수 있습니다 xcal, XML 호환 표현 icalendar 잠재적으로 잘 생각 된 아이디어에 대한 표준.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top