-2

我需要帮助。我必须从 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 的值。

谢谢,

4

1 回答 1

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
于 2012-06-20T16:35:02.460 回答