Как заставить Builder создать <tag></tag> вместо <tag /> - PullRequest
1 голос
/ 24 ноября 2010

Я использую Builder :: XmlMarkup для создания XML. Я хочу создать тег без содержимого, потому что API заставляет меня создать это. Если я использую блог

xml.tag do
end

Я получаю то, что мне нужно

<tag></tag>

но я хочу это короче

xml.mytag

это дает мне

<mytag/>

но я хочу

<mytag></mytag>

что я должен передать как вариант.

С уважением, Кай

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Просто передайте пустую строку в качестве параметра.xml.mytag('')

2 голосов
/ 24 ноября 2010

Почему вы хотите <mytag></mytag> вместо <mytag/>?Поскольку выходные данные представляют собой XML, последующие приложения не должны знать или заботиться о разнице.

Согласно спецификации Infoset ( Приложение D, точка 7 ), «Разница между двумя формамипустой элемент: <foo/> и <foo></foo> "не представлен в информационном наборе XML.

Это не отвечает на ваш вопрос« как », но если вы обнаружите, что вам на самом деле не нужно делатьто, что вы пытаетесь сделать, может спасти вас от трудной и ненужной погони за диким гусем.

1 голос
/ 24 ноября 2010

хорошо, пустая строка хороша, другой однострочный - пустой блок, который я обнаружил.

xml.mytag{}
...