2012-06-20 2 views
-2

인데 도움이 필요합니다. xml 파일에서 값을 가져와야합니다. 내 XML은 다음 유형 중 하나입니다.XML 구문 분석 xml 태그의 속성 및 값이

<CREDIT_SUMMARY BorrowerID="Borrower" _Name="TransUnionCreditSummaryDescription"> 
    <_DATA_SET _Name="SummaryType" _Value="R"></_DATA_SET> 
    <_DATA_SET _Name="HighCredit" _Value="5128"></_DATA_SET> 
    <_DATA_SET _Name="CreditLimit" _Value="23600"></_DATA_SET> 
    <_DATA_SET _Name="Balance" _Value="13364"></_DATA_SET> 
    <_DATA_SET _Name="AmountPastDue" _Value="0"></_DATA_SET> 
    <_DATA_SET _Name="MonthlyPayment" _Value="148"></_DATA_SET> 
    <_DATA_SET _Name="PercentOfCreditAvailable" _Value="43"></_DATA_SET> 
    <_Text>TransUnion Credit Summary: Revolving or Check Credit Accounts</_Text> 
</CREDIT_SUMMARY> 

xml 태그 안에 _Name 및 _Value 값을 가져와야합니다.

감사합니다,

+2

예제가 유효한 XML이 아닙니다. 정확한 예를 게시하십시오. – ceving

+2

어떤 언어로 제공됩니까? 자바? 기음#? – kjp

+2

언어를 사용하여 구문 분석하고 싶습니까? 또한 StackOverflow는 코드 팩토리가 아닙니다. 혼자 힘으로 시도해보십시오. 문제가 발생하면 SSCCE를 게시하는 데 도움을 청하십시오. –

답변

1

제 1 및 제 2 속성의 속성 식별자 얻기 위해 다음 Xpath 표현을 사용

//_DATA_SET/@*[position() = 1 or position() = 2]/name() 

또는이 값을 얻을 :

//_DATA_SET/@*[position() = 1 or position() = 2]/string() 

Saxon HE 수를 명령 줄에서 쿼리를 수행하는 데 사용하십시오.

$ cat credit.xml 
<CREDIT_SUMMARY BorrowerID="Borrower" _Name="TransUnionCreditSummaryDescription"> 
    <_DATA_SET _Name="SummaryType" _Value="R"></_DATA_SET> 
    <_DATA_SET _Name="HighCredit" _Value="5128"></_DATA_SET> 
    <_DATA_SET _Name="CreditLimit" _Value="23600"></_DATA_SET> 
    <_DATA_SET _Name="Balance" _Value="13364"></_DATA_SET> 
    <_DATA_SET _Name="AmountPastDue" _Value="0"></_DATA_SET> 
    <_DATA_SET _Name="MonthlyPayment" _Value="148"></_DATA_SET> 
    <_DATA_SET _Name="PercentOfCreditAvailable" _Value="43"></_DATA_SET> 
    <_Text>TransUnion Credit Summary: Revolving or Check Credit Accounts</_Text> 
</CREDIT_SUMMARY> 
$ java -cp saxon9he.jar net.sf.saxon.Query -s:credit.xml -qs:'//_DATA_SET/@*[position() = 1 or position() = 2]/string()' '!omit-xml-declaration=yes' 
SummaryType R HighCredit 5128 CreditLimit 23600 Balance 13364 AmountPastDue 0 MonthlyPayment 148 PercentOfCreditAvailable 43