Я не знаю, если хорошо формулировался мой вопрос, но даю пример.
Я использую C#, чтобы производить xml на основании базы данных, все это уже я считаю это готовым, он это наполняет и у меня нет никакой ошибки. Мой вопрос - следующий, и для того, чтобы поняли лучше, я буду помещать часть кода, который производит мой xml.
new XElement("documentosadjuntos",
from docadjunto in DocumentosAdjuntos.GetDocumentosAdjuntos(NumeroDocumento, CodigoDocumento)
select new XElement("documentoadjunto",
new XElement("tipo_codigo", docadjunto.iTipoCodigo),
new XElement("numero_documento", docadjunto.iNumeroDocumento),
new XElement("fecha_documento", docadjunto.iFechaDocumento),
new XElement("emisor", docadjunto.iEmisor),
new XElement("aduana_origen_codigo", docadjunto.iAduanaOrigenCodigo),
new XElement("rut_numero", docadjunto.iRutNumero),
new XElement("rut_dv", docadjunto.iRutDV)
)//конец документы присоединил
Практический пример: клиент может наполнять эти поля посредством формуляра и есть разы, в которых, например, он не наполняет того, что является эмитентом. Есть какой-то способ помещать if? чтобы видеть, включается ли эта часть кода?
new XElement("emisor", docadjunto.iEmisor),
Потому что, если человек не наполняет поле, он просто будет появляться как пустота и моя идея состоит в том, чтобы он не появился, я поместил этот код, но визуальный он говорит мне, что он не соответствует:
new XElement("documentosadjuntos",
from docadjunto in DocumentosAdjuntos.GetDocumentosAdjuntos(NumeroDocumento, CodigoDocumento)
select new XElement("documentoadjunto",
new XElement("tipo_codigo", docadjunto.iTipoCodigo),
new XElement("numero_documento", docadjunto.iNumeroDocumento),
new XElement("fecha_documento", docadjunto.iFechaDocumento),
if (docadjunto.iEmisor != "")
{
new XElement("emisor", docadjunto.iEmisor),
}
new XElement("aduana_origen_codigo", docadjunto.iAduanaOrigenCodigo),
new XElement("rut_numero", docadjunto.iRutNumero),
new XElement("rut_dv", docadjunto.iRutDV))//fin documentos adjunto
),//fin documentosadjuntos
Я думаю, что мое решение может быть в from
, делать другой тип консультации?.
Большое спасибо
EstГЎs, пробуя вводить блок, где одинокий принимаются выражения, if
- блок, но sГ - ты можешь делать это с условный оператор ?
(tambiГ©n они это называют тройной оператор). Этот оператор tambiГ©n оценивает одну condiciГіn, но является одной expresiГіn и возвращает стоимость. В этом случае строитель XElement
допускает, чтобы они переместили его стоимость null
, и что он делает, состоит в том, чтобы игнорировать это просто:
new XElement("documentosadjuntos",
from docadjunto in DocumentosAdjuntos.GetDocumentosAdjuntos(NumeroDocumento, CodigoDocumento)
select new XElement("documentoadjunto",
// ...
new XElement("fecha_documento", docadjunto.iFechaDocumento),
string.IsNullOrEmpty(docadjunto.iEmisor) ? null : docadjunto.iEmisor,
new XElement("aduana_origen_codigo", docadjunto.iAduanaOrigenCodigo),
// ...
)