「不明な」フィールドの数を確認するにはどうすればよいですか?
このXPath式:要素のカウントに
count(/*/*/*)
evalutes、XML文書の最上位ノードの子である要素の再児童こと - 正確に何でありますこの場合は欲しかった。
"Row"
要素は、名前が「UnknownCol」で始まっていない子どもたち、
を持つことができる場合、このXPath式は、名前「UnknownCol」で始まる要素の数を提供し、それはその要素の子でありますトップ要素の子は、次のとおりです。
count(/*/*/*[starts-with(name(), "UnknownCol")])
トップ要素が"Row"
以外の子を持つことが場合は、その後、必要な数を与えるXPath式は次のとおりです。
count(/*/Row/*[starts-with(name(), "UnknownCol")])
また、不明なフィールドについては、 がある場合はどのように属性を読み取ることができますか?XPathの:)
/*/Row/*[starts-with(name(), "UnknownCol")]/@*
を知ることによって
は全て "UnknownCol" {文字列}要素
のすべての属性を選択し、このXPath式は私達にこれらの属性の数を与える:
count(/*/Row/*[starts-with(name(), "UnknownCol")]/@*)
このXpath式は、k番目のそのような属性の名前を与えます($ indは番号kに設定する必要があります):
name((/*/Row/*[starts-with(name(), "UnknownCol")]/@*)[$ind])
そして最後には、このXPath式は、k番目のような属性の値を生成します。
string((/*/Row/*[starts-with(name(), "UnknownCol")]/@*)[$ind])
編集:OPは、彼は完全に子供要素の名前をlnowていないとコメント。
修正は簡単です:単にすべての式から述語を削除します。ここでは
count(/*/*/*)
count(/*/Row/*)
/*/Row/*/@*
count(/*/Row/*/@*)
name((/*/Row/*/@*)[$ind])
string((/*/Row/*/@*)[$ind])
を、私は正確な数のわからないんだけど未知数は関連しています。通常、XSLTパターンは、特に割り当てがないため、未知数を管理するために使用されます。あなたはどんな種類の変革をより明確にすることができますか? –
@OneSourceこれは私があなたの質問を理解した方法です...編集は簡単です:単純にどこでも述語を削除してください。 –
@OneSourceこれらは「XPath式」と呼ばれ、XPath式が許可されているXSLTのどこでも使用できます。主に、、、、 、、...など。 –