xmlから値を抽出する必要がありますが、タグが欠落している状況が発生しました。詳しく説明すると、約5つの同じ要素を手動で計算しましたが、ある兄弟ノード(型)に他の型と同じ要素はありません。たとえば、次のxmlを参照してください。 (以前に使ったことがありますが、例として使ってみましょう。)
<?xml version="1.0"?>
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts"
DTS:refId="Package"
DTS:CreationDate="7/22/2019 4:18:27 PM"
DTS:CreationName="Microsoft.Package"
DTS:CreatorComputerName="ADMIN-8DF005D47"
DTS:CreatorName="ADMIN-8DF005D47\Administrator"
DTS:DTSID="{8CCA1D42-642A-4932-AAEC-E02175A4B2DB}"
DTS:ExecutableType="Microsoft.Package"
DTS:LastModifiedProductVersion="15.0.2000.68"
DTS:LocaleID="1033"
DTS:ObjectName="HardestNestedWorkflow2"
DTS:PackageType="5"
DTS:VersionBuild="12"
DTS:VersionGUID="{FDD9B190-1A03-4A19-8794-FA86F4F46A93}">
<DTS:Property
DTS:Name="PackageFormatVersion">8</DTS:Property>
<DTS:ConnectionManagers>
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[ADMIN-8DF005D47.AdventureWorks]"
DTS:CreationName="OLEDB"
DTS:DTSID="{A32A68DF-3D53-4057-AF80-1B8D524F82BC}"
DTS:ObjectName="ADMIN-8DF005D47.AdventureWorks">
<DTS:ObjectData>
<DTS:ConnectionManager
DTS:ConnectionString="Data Source=ADMIN-8DF005D47;Initial Catalog=AdventureWorks;Provider=SQLNCLI11;Integrated Security=SSPI;Application Name=SSIS-HardestNestedWorkflow2-{A32A68DF-3D53-4057-AF80-1B8D524F82BC}ADMIN-8DF005D47.AdventureWorks;Auto Translate=False;" />
</DTS:ObjectData>
<!--snipped-->
</DTS:ConnectionManager>
</DTS:ConnectionManagers>
</DTS:Executable>
F(ビッグブラザー)そこには兄妹がいるんです。 (そのような要素を探しています)
xmllint
そしてwithを使って抽出すると、存在するxpath
兄弟だけが抽出されます。
XMLコードはおそらく悪い例かもしれませんが、これは私が達成したいフォーマットです。左の列は大きな兄弟ノード、右の列は兄弟ノードです。
DTS:CreationName="OLEDB" {A32A68DF-3D53-4057-AF80-1B8D524F82BC}
DTS:CreationName="Excel" {A32A68DF-3D53-4057-AF80-1B8D524F82BC}
DTS:CreationName="..." <no value>
DTS:CreationName="blah blah" <no value>
xmllint
xpath
コードを書く方法はありますか?
- 上記の形式を作成しますか?データベース結果セットと同じです。
awk
ieを使用して選択できるように、兄弟ノードと兄弟ノードの間に文字を追加します。DTS:CreationName="OLEDB"%{A32A68DF-3D53-4057-AF80-1B8D524F82BC}
- スペースを表示せず、
NULL
兄弟が存在しないことを思い出させる文字を入力してください。 兄弟ノードが2つ以上の場合は、同じ兄弟ノードを並べて配置します。
兄弟1%兄弟姉妹1
兄弟1%兄弟姉妹2
本当に役に立ちます。もっと学ぶことを楽しみにしていますxmllint
!