我需要帮助。我必须从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>
我必须得到_Name和_Value的值,它位于xml标记内。
谢谢,
答案 0 :(得分:1)
使用以下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