2

サンプルの XMLExtractor ( https://github.com/Azure/usql/tree/master/Examples/DataFormatsから複製) を使用して、xml 要素からプロパティを抽出しています。

ルート要素にプロパティが定義されている場合、エクストラクタは機能しません。

たとえば、次の XML ファイルから「rec」要素の「sTime」プロパティを取得する必要があります。

<lics xmlns="***" lVer="*" pID="*" aKey="*" cTime="*" gDel="*" country="*" fStr="*">
   <rec Ver="*" hID="*.*.*" cSID="Y5/*=" uID="*\Rad.*" uSID="*/*=" cAttrs="*" sTime="*" eTime="*" projID="*" docID="*" imsID="*">
   </rec>
</lics>

次の U-SQL スクリプトを使用します。

@e = EXTRACT a string, b string
 FROM @"D:\file.xml"
 USING new Microsoft.Analytics.Samples.Formats.Xml.XmlDomExtractor(rowPath:"rec",
                         columnPaths:new SQL.MAP<string, string> { {"@sTime", "a"} });

OUTPUT @e TO "D:/output.csv" USING Outputters.Csv(quoting:false);

これにより、空のファイルが書き込まれます。しかし、「lics」タグのプロパティを削除すると機能します。

<lics>
   <rec Ver="*" hID="*.*.*" cSID="Y5/*=" uID="*\Rad.*" uSID="*/*=" cAttrs="*" sTime="*" eTime="*" projID="*" docID="*" imsID="*">
   </rec>
</lics>

これは抽出器の問題ですか?それとも、エクストラクタのパラメータのいずれかでこれを定義する必要がありますか?

4

2 に答える 2