構造化されていないXML文書を処理して、構造化文書に変換できるようにしています。私は構造化されたフォーマットを作成し、簡単に使用することにより、関連するフィールドを抽出してXMLを生成することができたXML文書のノード選択
<?xml version="1.0" encoding="UTF-8"?>
<xmlns:evt="http://www.metadata..com/Management/">
<Identifier>3442=000-MNNN</Identifier>
<TypeCode>Purchase History</TypeCode>
<TypeDescription>Order Summary</TypeDescription>
<PurposeCode>Invoice</PurposeCode>
<Member>
<Email>String</Email>
<MemberSince>03/23/2000</MemberSince>
<MemberType>
<MemberShipTypeCode>String</MemberShipTypeCode>
<TypeDescription>String</TypeDescription>
</MemberType>
<Address>
<AddressLine1Text>String</AddressLine1Text>
<AddressLine2Text>String</AddressLine2Text>
<CityName>String</CityName>
<StateCode>String</StateCode>
<Zip5Code>String</Zip5Code>
<Zip4Code>String</Zip4Code>
</Address>
<Telephone>
<AreaCode>String</AreaCode>
<TelephoneNumber>String</TelephoneNumber>
</Telephone>
</Member>
<Company>
<CompanyName>String</CompanyName>
<CustomerIdentification>0.0</CustomerIdentification>
<PrimaryCustomerIndicator>String</PrimaryCustomerIndicator>
<CompanyAddress>
<CompanyAddressLine1Text>String</CompanyAddressLine1Text>
<CompanyAddressLine2Text>String</CompanyAddressLine2Text>
<CompanyCityName>String</CompanyCityName>
<CompanyStateCode>String</CompanyStateCode>
<CompanyZip5Code>String</CompanyZip5Code>
<CompanyZip4Code>String</CompanyZip4Code>
</CompanyAddress>
</Company>
<Orders>
<CreditCard>
<CardName>String</CardName>
<CardExpirationDate>1967-08-13</CardExpirationDate>
</CreditCard>
<Order>
<Discount>String</Discount>
<ShippingVendorName>String</ShippingVendorName>
<ShipmentTrackingNumber>String</ShipmentTrackingNumber>
<ShipmentTrackingLinkText>String</ShipmentTrackingLinkText>
<CustomerName>String</CustomerName>
<CustomerEmailAddressText>String</CustomerEmailAddressText>
<Telephone>
<AreaCode>String</AreaCode>
<TelephoneNumber>String</TelephoneNumber>
</Telephone>
<ShippingAddress>
<ShippingAddressLine1Text>String</ShippingAddressLine1Text>
<ShippingAddressLine2Text>String</ShippingAddressLine2Text>
<ShippingCareOfText>String</ShippingCareOfText>
<ShippingCityName>String</ShippingCityName>
<ShippingStateCode>String</ShippingStateCode>
<ShippingZip5Code>String</ShippingZip5Code>
<ShippingZip4Code>String</ShippingZip4Code>
</ShippingAddress>
<LineItem>
<LineItemNumber>String</LineItemNumber>
<LineItemQuantityCount>0</LineItemQuantityCount>
<ItemOrderedIndicator>String</ItemOrderedIndicator>
<Discount>String</Discount>
</LineItem>
</Order>
</Orders>
:非構造化文書は、次の
<?xml version="1.0" encoding="UTF-8"?>
<CustomerInformation>
<CustomerPurchaseID>String</CustomerPurchaseID>
<MemberAddress>String</MemberAddress>
<MemberID>String</MemberID>
<MemberCity>String</MemberCity>
<MemberName>String</MemberName>
<MemberType>String</MemberType>
<MemberState>String</MemberState>
<MemberSince>String</MemberSince>
<PurchaseDate>String</PurchaseDate>
<CreditCardName></CreditCardName>
<CreditCardExpirration></CreditCardExpirration>
<Orders>
<LineItemCode>String</LineItemCode>
<LineItemID>String</LineItemID>
<LineItemDescription>String</LineItemDescription>
<DiscountCode>String</DiscountCode>
</Orders>
<Orders>
<LineItemCode>String</LineItemCode>
<LineItemID>String</LineItemID>
<LineItemDescription>String</LineItemDescription>
<DiscountCode>String</DiscountCode>
</Orders>
<ShipToAddress>String</ShipToAddress>
<ShipToCity>String</ShipToCity>
<ShipToFirstName>String</ShipToFirstName>
<ShipToLastName>String</ShipToLastName>
<ShipToState>String</ShipToState>
<ShipToZIPCode>String</ShipToZIPCode>
<CustomerAddressLine1>String</CustomerAddressLine1>
<CustomerAddressLine2>String</CustomerAddressLine2>
<CustomerID>String</CustomerID>
<CustomerCity>String</CustomerCity>
<CustomerEmail>String</CustomerEmail>
<CustomerFirstName>String</CustomerFirstName>
<CustomerLastName>String</CustomerLastName>
<CustomerHomePhone>String</CustomerHomePhone>
<CustomerState>String</CustomerState>
<CustomerZIP>String</CustomerZIP>
<Status>String</Status>
<OrderedFromName>String</OrderedFromName>
<CustomerIdentification></CustomerIdentification>
<PrimaryCustomerIndicator>String</PrimaryCustomerIndicator>
<OrderedFromAddressLine1Text>String</OrderedFromAddressLine1Text>
<OrderedFromAddressLine2Text>String</OrderedFromAddressLine2Text>
<OrderedFromCityName>String</OrderedFromCityName>
<OrderedFromStateCode>String</OrderedFromStateCode>
<OrderedFromZip5Code>String</OrderedFromZip5Code>
<OrderedFromZip4Code>String</OrderedFromZip4Code>
</CustomerInformation>
のように見えるそれは、この何かに変換します以下のXSLTのノード値:
<xsl:value-of select=.../>
しかし、私はそれを行うより良い方法があるかもしれないと感じました。構造化されていないドキュメントやフラットなドキュメントをナビゲートする際に、構造の生成方法を制御できるようにしたいと考えています。すべてのMemberAddressフィールドの要素をグループ化する方法はありますか?私がこれを行うことができれば、出力のメンバー部分を作成することができます。私は他の要素についても同じことをすることができました。構造化文書のハードコーディングに関する私の懸念は、今後変更される可能性があることです。可能であれば、出力を制御できるようにしたいと思います。ソース文書のすべてのメンバー情報は、ターゲット文書のメンバー要素にマップする必要があります。 OrderedFromで始まるソース文書の要素は、ターゲット文書のCompanyフィールドにマップする必要があります。 ShipTo要素は、ターゲット文書のordersセクションにある出荷情報にマッピングされなければなりません。助けてください!!
''は有効な開始タグではありません。また、 'は有効なXSLT命令ではありません。 –