0

我需要从查询中获取 XML:

SELECT
... join ...
FOR XML PATH ('parent-lines'), ROOT('main-tag'), ELEMENTS XSINIL;

我已经能够得到这个结构:

<main-tag>
  <parent-lines>
    ...
    <child-name>EXAMPLE</child-name>     //case when the child is popolated
    <child-name xsi:nil=true />          //case when the child is empty
    ...
  </parent-lines>
  ...many parent-lines
</main-tag>

现在我有两个问题:

  • 第一个是没有 xsi: nil 属性的子名称,以防它们为空,因此:
<child-name />
  • 第二个是我有某种“标题”,静态的,适用于任何父标记,我想将其插入到我的 XML 结构中,并获得与此类似的结构:
<main-tag>
  <header>
     ...
     <child-name>A sort of explain of the field</child-name>
     ...
  </header>                  //single header
  <parent-lines>...</parent-lines>      //many parent-lines
  ...
</main-tag>

你能帮助我吗?

4

1 回答 1

0

我解决了这些问题,首先感谢@Larnu 和他的评论,其次是使用这种技术:

SELECT 
 (SELECT 'Cip' AS 'Cip' FOR XML PATH (''), TYPE) AS Header,
 (SELECT 'Ciop' AS 'Ciop' FOR XML PATH ('Parent-lines'), TYPE)
FOR XML PATH (''), ROOT('main-tag');

在第一个嵌套的“Select”中,在 PATH 中我没有输入任何内容,但在外部我用我想要获得“AS Header”的名称对其进行了洗礼。然而,在第二个“选择”中,在 PATH 中,我输入了我想为每个“父行”重复的名称。

我希望这个问题/答案对其他用户有用。再次感谢,祝大家好运!

于 2021-06-09T15:40:52.173 回答