c # Как получить имя атрибута из xslt - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть следующая часть xslt в строковом формате: -

<xsl:if test="TestValue3 and TestValue3 != ''">
                                                <xsl:attribute name = "TestDate" >
                                                <xsl:value-of select = "TestValue3" />
                                                </xsl:attribute>
                                                </xsl:if>

Я просто хочу получить имя его атрибута из кода c #.

Attribuute Name= TestDate

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Если я вас правильно понимаю, это должно сработать, в противном случае добавьте больше контекста.

<xsl:if test="TestValue3 and TestValue3 != ''">
  <xsl:if test="not(@TestDate)">
    <xsl:attribute name = "TestDate" >
      <xsl:value-of select = "TestValue3" />
    </xsl:attribute>
  </xsl:if>
</xsl:if>
0 голосов
/ 22 февраля 2019

Используйте ваш любимый XML API для загрузки XSLT и итерации / запроса к рассматриваемому элементу (в этом случае вам нужно будет найти владельца xsl:if и само условие).например, вы можете загрузить его в XmlDocument или XDocument.

. Вы можете использовать XPath, чтобы найти элемент за XmlDocument с или, есливы используете XDocument вы можете использовать LINQ .

Не пытайтесь использовать технологии, которые не оборудованы для структурированных данных.

т.е.

  • не использовать поиск по плоской строке
  • не используйте regex

На самом деле я добавляю вышеуказанный блок в существующий xslt ,, но перед добавлением мне нужно проверить, существует ли атрибут name = TestDate ... Для этогоМне нужно знать имя атрибута, потому что имя атрибута может варьироваться в зависимости от блока, это не исправить каждый раз

Снова, используйте вышеупомянутые рекомендации.И XmlDocument, и XDocument позволяют загружать / редактировать / сохранять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...