1
내가 동적 생성 한 XML 파일동적 XML
-----Example1-----
<items>
<param1>aaaa</param1>
<param2>bbbb</param2>
<param3>cccc</param3>
</items>
-----Example2-----
<items>
<test1>dddd</test1>
<test7>eeee</test7>
<john1>ffff</john1>
<john2>ffff</john2>
</items>
내가 이
-----SQL TABLE for Example1-----
Name Value
param1 aaaa
param2 bbbb
param3 cccc
-----SQL TABLE for Example2-----
Name Value
test1 dddd
test7 eeee
john1 ffff
john2 ffff
문제처럼 테이블이 XML 파일을 변환 할 - 상품 XML 태그 이름이 다른 각 xml 파일 (예 : 샘플) - 항목 번호는 각 xml 파일마다 다릅니다.
누구나 사용하실 수 있습니다.
C#에서 6,갱신 1 샘플 내가했던 그하지만 난 T-SQL :(
public static void test()
{
string test = @"
<items>
<param1>aaaa</param1>
<param2>bbbb</param2>
<param3>cccc</param3>
</items>
";
XmlDocument newdoc = new XmlDocument();
XmlNode root = newdoc.CreateElement("dataset");
newdoc.AppendChild(root);
XmlDocument doc = new XmlDocument();
doc.InnerXml = test;
XmlNodeList lst = doc.SelectNodes("//items/*");
foreach (XmlNode item in lst)
{
Console.WriteLine(item.Name + ": " + item.InnerXml);
}
}
결과 PARAM1에서이 작업을 수행 할 필요가 : AAAA PARAM2 : 3 당겨 BBBB : CCCC
UPDATE2는 partialy 해결 내가하기 만하면 XML 태그 이름을 얻을
declare @foo xml
set @foo = N'
<items>
<param1>aaaa</param1>
<param2>bbbb</param2>
<param3>cccc</param3>
</items>'
SELECT
'' as name, --?? no idea how to get names param1,param2,param3
bar.value('./.','VARCHAR(14)') as value
FROM
@foo.nodes('/items/*') AS foo(bar)
내가 TSQL에서 간단한 방법이 필요합니다, 나는 2,3 후, C#을 (게시 샘플)에서이 작업을 수행 할 수 있습니다 시간은 내가 선언 @foo XML 설정 @foo = N ' AAAA ...이 TSQL에서 spliting 문자열을 대체하여 수행하지만 난 이런 식으로 뭔가를 선택 XML을 사용하여 간단한 방법이 있다고 생각 얻을 수 있습니다 CCCC BBBB 이름 ' SELECT '- ?? 아무 생각이 없다 bar.value ('./ param1 [1]', 'VARCHAR (14)') 값으로 - 멀티 행을 얻으려는 아이디어가 없다. FROM @foo.nodes ('/ items') AS foo bar) –
wicherqm
감사합니다. bar.value ('local-name (.)', 'VARCHAR (14)') ":) – wicherqm